У меня есть загрузка пакета активов в моем проекте, и я добавляю все их в список, чтобы я мог выполнять итерацию через каждый отдельный объект внутри комплекта активов. Тем не менее, у меня возникли проблемы с удалением загруженного объекта, когда я больше не нуждаюсь в нем в своей сцене.Уничтожение загруженных активов из пакета Unity Asset Bundle
В моем исследовании я знаю о Bundle.UnloadAll, но из того, что я прочитал, он уничтожает весь пакет, который я не хочу. Сейчас мой код выглядит следующим образом:
if(GUI.Button(new Rect(10,130,100,50), "Forward"))
{
if(index > 0 && object_List[index] != null)
{
Destroy((GameObject)object_List[index]);
}
Instantiate((GameObject)object_List[index]);
index ++;
}
Этот код перебирает в моем списке, содержащие загруженный в объектах пачке активов и должен породить следующий в списке. В то же время он должен уничтожить ранее загруженный. Но когда я запускаю этот код, я получаю следующее сообщение об ошибке:
Destroying assets is not permitted to avoid data loss. If you really want to remove an asset use DestroyImmediate (theObject, true);
Так что я изменить свой код, чтобы его предложение и я бегу в эту ошибку:
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object.
Однако ничто не удаляется из моего списка и первый объект, который будет создан, все еще остается.
Неужели кто-нибудь сталкивался с подобной проблемой? Является ли то, что я пытаюсь сделать, даже возможно?
Любая помощь будет оценена по достоинству.