Etant débutant dans l'utilisation des AssetBundle, je me permet de solliciter votre aide concernant l'utilisation de AssetBundle.Unload.
J'utilise une coroutine qui a pour but de charger les objets de la scène (tous les objets : mobilier, constructions, maisons doivent être chargés dynamiquement, donc les AssetBundle semblent être une bonne solution).
Code : Tout sélectionner
IEnumerator GetObjectCor(string categ, string objName)
{
var bundleLoadRequest = AssetBundle.LoadFromFileAsync(Path.Combine(Application.streamingAssetsPath, categ));
yield return bundleLoadRequest;
var myLoadedAssetBundle = bundleLoadRequest.assetBundle;
if (myLoadedAssetBundle == null)
{
Debug.Log("Failed to load AssetBundle!");
loadedObject = null;
objectSearching = false;
myLoadedAssetBundle.Unload(true);
yield break;
}
var assetLoadRequest = myLoadedAssetBundle.LoadAssetAsync<GameObject>(objName);
yield return assetLoadRequest;
if (assetLoadRequest != null && assetLoadRequest.asset != null)
loadedObject = assetLoadRequest.asset as GameObject;
else
loadedObject = null;
myLoadedAssetBundle.Unload(false);
objectSearching = false;
}
Après quelques tests et renseignements, j'en ai conclu que c'était à cause de myLoadedAssetBundle.Unload(false); et qu'il était préférable d'utiliser myLoadedAssetBundle.Unload(true); mais lorsque je l'utilise, tous les objets créés disparaissent étant donné que les objets déjà créés sont également unload.
Etant donné que j'ai un gros nombre d'objets à charger à l'initialisation + les assetbundle à charger durant l'utilisation du map editor (lien ci dessous), je ne vois pas vraiment comment optimiser cela efficacement. Peut-être est-ce possible avec Unload(true) mais comment pourrais-je faire?
map editor : https://www.zupimages.net/up/20/17/ps6o.png
Je souhaiterai donc trouver une solution grâce à vous, je vous remercie par avance pour votre aide!