2015-03-08 17 views
6

Więc przeczytałem zmiany w Unity5 AssetBundle i doskonale je rozumiem. Mój problem polega na tym, że wiele funkcji zostało "przestarzałych", ale funkcje wydają się nadal działać, a dokumentacja Unity5 w rzeczywistości używa przestarzałych funkcji.Funkcje Unity5 AssetBundle są przestarzałe?

Moim głównym zmartwieniem jest to, jak mam teraz, w Unity5, wziąć katalog prefabrykatów i zamienić je wszystkie na osobne AssetBundles oddzielnie? Nie tylko jeden AssetBundle zawierający wszystko, ale każdy z nich jest wbudowany w oddzielny AssetBundle?

Idealnie byłoby użyć funkcji BuildPipeline.BuildAssetBundle. Ale jedność5 mówi, że jest ona przestarzała. Ale jeśli spojrzysz tutaj: http://docs.unity3d.com/500/Documentation/Manual/managingassetdependencies.html

Używają tej funkcji w instrukcji.

Mówi również, że opcja CollectDependencies jest przestarzała i nie jest już potrzebna. Ale usunąłem go z mojego kodu, a następnie Unity wypluć błąd:

Please specify BuildAssetBundleOptions.CollectDependencies or collect GameObject's components and pass as 'assets' parameter. 

Odpowiedz

5

Nowy BuildPipeline.BuildAssetBundles pobiera AssetBundleBuild tablicę jako wejścia. Możesz utworzyć AssetBundleBuild[] i wypełnić go wszystkimi gotowymi prefabrykatami, jako osobne zestawy:

//Create an array for 2 different prefabs. 
AssetBundleBuild[] buildMap = new AssetBundleBuild[2]; 

//Make a buildMap for the first prefab. 
AssetBundleBuild buildInfo1 = new AssetBundleBuild(); 
//The name of the bundle that the prefab will be saved as. 
buildInfo1.assetBundleName = bundle1Name+".unity3d"; 

//Only one file for this prefab. 
string[] prefabs1 = new string[1]; 
//The full path to the prefab. 
prefabs[0] = prefab1Path; 
buildInfo1.assetNames = prefabs1; 

buildMap[0] = buildInfo1; 


AssetBundleBuild buildInfo2 = new AssetBundleBuild(); 
//The name of the bundle that the prefab will be saved as. 
buildInfo2.assetBundleName = bundle2Name+".unity3d"; 

//Only one file for this prefab. 
string[] prefabs2 = new string[1]; 
//The full path to the prefab. 
prefabs[0] = prefab2Path; 
buildInfo2.assetNames = prefabs2; 

buildMap[0] = buildInfo2 

//Save the prefabs as bundles to the "bundleFolder" path. 
BuildPipeline.BuildAssetBundles(bundleFolder, buildMap) 
Powiązane problemy