티스토리 뷰

프로그래밍/게임 개발

[Unity] Scene Asset Bundle

터프 프로그래머 2015. 1. 8. 00:29

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을 실행하면 스크립트는 작동하지 않는다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday