티스토리 뷰
Unity에서 AssetBundle을 쓸 일이 생겼는데, 그 중에서도 특히 Scene AssetBundle에 관심이 생겨서 몇 가지 테스트를 해봤다.
원래 Unity에서 Scene을 로드할 때는 Application.LoadLevel을 통해서 하는데, 원래는 Build Setting에서 Scene을 추가해줘야 한다. 그런데 AssetBundle을 이용하여 Scene을 실행할 때는 어떻게 해야하는지에 대한 설명이 빈약하다.
보통 예제들을 보면 AssetBundle을 WWW를 통해 다운로드 받은 뒤, www.assetBundle.LoadAll()을 한다. 그런데 직접 테스트 해 본 결과, LoadAll을 하지 않아도 LoadLevel을 하는데 문제가 없다.
Application.LoadLevel의 인자로 넣어줘야 할 값은 무엇일까? 해당 scene assetBundle에 넣은 Scene의 이름을 써넣으면 된다. 다른 값을 넣으면 에러가 뜬다.
AssetBundle로 받은 Scene을 실행해보면 GameObject에 등록해둔 스크립트의 링크가 깨져있다. 이걸 몇가지 실험을 통해서 좀 더 자세히 알아봤다. 결론부터 말하자면, 원래 해당 게임의 프로젝트 상에서 Build한 AssetBundle의 경우 에디터 상에서 GameObject에 스크립트 링크가 잘 되지 않은 것처럼 보여도 문제가 없다. 에디터상에서만 그런 것이고, 해당 스크립트의 코드는 정상적으로 작동한다. 하지만 다른 프로젝트를 새로 생성하여, 같은 AssetBundle을 받도록 한 뒤 Scene을 실행하면 스크립트는 작동하지 않는다.
'프로그래밍 > 게임 개발' 카테고리의 다른 글
[Unity, C#] EventHandler를 이용해서 Event Driven Programming 하기 (4) | 2015.02.16 |
---|---|
[Unity] 적 위치에 맞춰서 표적 마크 스프라이트 보여주기 (0) | 2015.01.29 |
[Unity] Grayscale shader (0) | 2014.08.08 |
[cocos2dx] 다중 해상도 지원 삽질기 (1) | 2014.03.01 |
[cocos2dx] 실패 - Designed Resolution & CocoStudio 콜라보레이션? (1) | 2014.02.19 |
- Total
- Today
- Yesterday