2015-05-19 7 views
0

Я пытаюсь создать пакет активов со сценами. Это то, что я сделал в unity4Unity5 Building Asset Связки со сценами

[MenuItem("Bundle/Create ios Scene SceneLoader")] 
static void iosBuild(){ 
    string[] levels = new string []{"Assets/Scenes/01 SceneLoader.unity", "Assets/Scenes/02 Level1.unity","Assets/Scenes/02 Level2.unity" ,"Assets/Scenes/02 Level3.unity"}; 

    BuildPipeline.BuildStreamedSceneAssetBundle(levels, "Assets/Bundles/bundle-ios.unity3d", BuildTarget.iOS); 
} 

После этого я загрузить мой пакет с помощью этого кода:

using(WWW www = WWW.LoadFromCacheOrDownload (url, 0)){ 
     while(!www.isDone){ 
      status.text = "loading \n" + (www.progress * 100).ToString() + "%"; 
      yield return null; 
     } 

     yield return www; 
     //check if server response is an error 
     if (www.error != null){ 
      throw new Exception("WWW download had an error: " + url + " " + www.error); 
     } 

     //Load the asset bundle 
     AssetBundle bundle = www.assetBundle; 

     //obsolete bundle.LoadAll(); 
     bundle.LoadAllAssets(); 
     Application.LoadLevel ("01 SceneLoader"); 
    } 

Этот код работал в unity4, но теперь, когда я загружаю мою сцену, все ссылки скрипта не хватает. Объекты находятся в сцене, но нет скриптов. Кроме того, единство говорит мне, что BuildStreamedSceneAssetBundle устарел. Поэтому мой вопрос: почему мои ссылки на сценарий не являются ключевыми? Поэтому, когда я загружаю пакет активов, все сценарии не пропадают. Также отсутствует мой атлас NGUI, который я использую в загруженной сцене.

Был бы рад, если у кого-то есть идея!

EDIT: первая строка в «уровнях» будет иметь все ссылки на сценарии. Как это возможно?

ответ

0

Я думаю, что эта проблема является единственной ошибкой. У моего проекта такая же проблема.

Я нашел решение, но это очень неудобно.
Если вы должны использовать комплект ресурсов сцены, сделать один пакет активов на одну сцену.

string[] level1 = new string []{"Assets/Scenes/01 SceneLoader.unity"}; 
string[] level2 = new string []{"Assets/Scenes/02 Level1.unity"}; 
..... 

BuildPipeline.BuildStreamedSceneAssetBundle(level1, "Assets/Bundles/bundle-ios1.unity3d", BuildTarget.iOS); 
BuildPipeline.BuildStreamedSceneAssetBundle(level2, "Assets/Bundles/bundle-ios2.unity3d", BuildTarget.iOS); 
..... 

Я использовал функцию BuildPipeline.BuildAssetBundles в Unity5.
Но я думаю, что «BuildPipeline.BuildStreamedSceneAssetBundle» и «BuildPipeline.BuildAssetBundles» аналогичны.

+0

Спасибо, что сработало !!! Надеюсь, что скоро это исправит. – Jenny

Смежные вопросы