В моем случае я использую API unity4.x. моя структура assetbundle вроде
A.assetbundle
- depency ShareSprite.assetbundle
сначала загружает ShareSprite.assetbundle
, а затем загружает A.assetbundle
, это выглядит хорошо.
Если я хочу изменить настройки ShareSprite, я подумал, что мне нужно только перестроить ShareSprte.aseetbundle
. не нужно перестраивать A.assetbundle.
, потому что A.Assetbundle
является зависимостью ShareSprite.assetbundle
. Но это не работает.
SpriteSetting изменить до
SpriteSetting изменить после
И когда я Загрузите измененную настройку Sprite, изображение A.assetbundle по-прежнему выглядит следующим образом
Но так и должно быть
Поскольку я заменяю ShareSprite.assetbundle
Могу ли я перестроить только ресурсный пакет shareSprite? Как это сделать?
Мой код здесь:
//Build ShareSprite.assetbundle
UnityEngine.Object[] uiorigin = new UnityEngine.Object[3];
uiorigin[0] = AssetDatabase.LoadMainAssetAtPath("Assets/DepencyMTest/F.png");
uiorigin[1] = AssetDatabase.LoadMainAssetAtPath("Assets/DepencyMTest/F_a.png");
uiorigin[2] = AssetDatabase.LoadMainAssetAtPath("Assets/DepencyMTest/F_m.mat");
BuildPipeline.PushAssetDependencies();
BuildPipeline.BuildAssetBundle(null, uiorigin, Application.temporaryCachePath + "/ShareSprite.assetbundle", out crc,
BuildAssetBundleOptions.CollectDependencies |
BuildAssetBundleOptions.DeterministicAssetBundle |
BuildAssetBundleOptions.ForceRebuildAssetBundle |
BuildAssetBundleOptions.UncompressedAssetBundle, BuildTarget.StandaloneWindows)
// Build A.assetbundle
BuildPipeline.PushAssetDependencies();
BuildPipeline.BuildAssetBundle(Selection.activeObject, selectObjs, targetPath, out crc, BuildAssetBundleOptions.CollectDependencies |
BuildAssetBundleOptions.DeterministicAssetBundle |
BuildAssetBundleOptions.ForceRebuildAssetBundle |
BuildAssetBundleOptions.UncompressedAssetBundle, BuildTarget.Android);
BuildPipeline.PopAssetDependencies();
BuildPipeline.PopAssetDependencies();