2013. 7. 9. 00:51ㆍ게임 개발/Unity
1. Scene 의 구성/ 생성 / 전환 ,스크립트를 이용한 GameObject 생성
Build Setting 메뉴 상에서 Scene in Build 에 추가를 해야 구현이 가능하다.
2. Scene 전환시에도 GameObject 유지, Scene 전환후 처리
* Scene 전환시 Tip
새로운 레벨이 로드 될 때 이전 레벨의 오브젝트가 삭제되지 않기를 바라면, 희망하는 오브젝트에 DontDestroyOnLoad()함수를 사용하면 되고, 추후 다 사용한 뒤에 삭제는 꼭 별도로 해줘야 함.
public void ChangeScene(string sceneName)
{
this.sceneName = sceneName;
StartCoroutine(ChangeScene2());
}
private IEnumerator ChangeScene2()
{
DontDestroyOnLoad(gameObject); //loading 시에 메모리에서 해제 되지 않음.
if(this.fadeOut)
{
LevelHandler2.Instance().screenFader.FadeSceen(true, 0, 1, false, 0, 0, false, 0, 0, false, 0, 0, this.fadeOutInterpolate, this.fadeOutTime);
yield return new WaitForSeconds(this.fadeOutTime);
}
this.check = true;
if(sceneName == "")
Debug.LogError("No scene name is set in Scene Changer.");
else
Application.LoadLevel(sceneName);
}
IEnumerator OnLevelWasLoaded(int level)
{
if(this.check)
{
//Debug.Log("OnLevelWasLoaded is called.");
if(level == 1)
{
GameObject go = GameObject.Find("BackgroundTitle");
if(go)
go.active = false;
CreateEventSpawnPlayer();
}
yield return null;
//fade-in the loaded scene.
if(this.fadeIn)
{
LevelHandler2.Instance().screenFader.FadeSceen(true, 1, 0, false, 0, 0, false, 0, 0, false, 0, 0, this.fadeInInterpolate, this.fadeInTime);
}
yield return null;
GameObject.Destory(gameObject);
}
}
활용 Tip
1. Unity3D 에서는 다음의 API 들로 scene에서 다른 scene 을 로딩 할 수 있다.
2. Application.LoadLevel
Application.LoadLevelAdditive
Application.LoadLevelAsync
Application.LoadLevelAddtiveAsync
3. 만약 iOS 에서 한번에 큰 scene을 읽어 들이는 경우에는 많은 로딩 시간이 소요될 수 있는데, 이런 경우에는 scene을 여러 개의 작은 scene 으로 분할 한 다음 , 첫번째 scene을 로딩한 다음 LoadLevelAdditive 나 LoadLevelAdditiveAsync 를 사용하여 다음 Scene 을 현재 로딩한 scene 에 추가하는 방법으로 로딩 시간을 줄 일 수 있다. __Async 의 함수들은 비동기로 로딩을 하는 기능을 제공한다.
http://aydenunity.wordpress.com/2013/05/31/assetbundle-workflow-unity-asia-bootcamp/
'게임 개발 > Unity ' 카테고리의 다른 글
8. 캐릭터 생성 이벤트 (0) | 2013.07.09 |
---|---|
6. 3인칭 카메라 구현 (1) | 2013.07.09 |
5. 입력 처리(** Ray.. RayCast ...) (0) | 2013.07.09 |
4. Coroutine 구현에 대해서 공부 (2) | 2013.07.05 |
2,3 Unity3D의 Game Object 생성과 Component 의 종류 알아 보기 (1) | 2013.07.04 |
1. Unity3D 에 대한 화면 구성에 대한 공부 (0) | 2013.07.03 |