2015-03-08 11 views
6

Итак, я прочитал изменения Unity5 AssetBundle и прекрасно их понимаю. Моя проблема в том, что многие функции были «устаревшими», но функции, похоже, все еще работают, и документация Unity5 фактически использует устаревшие функции.Unity5 AssetBundle функции устарели?

Моя главная забота заключается в том, как я теперь, в Unity5, возьму каталог сборников и превращу их все в свои отдельные AssetBundles отдельно? Не только один AssetBundle, содержащий все, но каждый встроенный в свой собственный AssetBundle?

В идеале я бы использовал функцию BuildPipeline.BuildAssetBundle. Но единство5 говорит, что оно устарело. Но если вы посмотрите здесь: http://docs.unity3d.com/500/Documentation/Manual/managingassetdependencies.html

Они используют эту функцию в руководстве.

Также говорится, что опция CollectDependencies является устаревшей и больше не нужна. Но я удалил его из моего кода, а затем Unity выплюнуть ошибку:

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

ответ

5

Новый BuildPipeline.BuildAssetBundles принимает AssetBundleBuild массива в качестве входных данных. Вы можете создать AssetBundleBuild[] и заполнить его всеми необходимыми сборными сборками:

//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) 
Смежные вопросы