У меня есть загрузка пакета ресурсов в моем проекте, и я добавляю их все в список, чтобы я мог перебирать каждый отдельный объект внутри пакета ресурсов. Однако у меня возникают проблемы с удалением загруженного объекта, когда он мне больше не нужен в моей сцене.
В своих исследованиях я знаю 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 ++;
}
Этот код выполняет итерацию по моему списку, содержащему загруженные объекты пакета ресурсов, и должен порождать следующий в списке. При этом он должен уничтожить ранее заряженный. Но когда я запускаю этот код, я получаю следующую ошибку:
Уничтожение активов запрещено во избежание потери данных. Если вы действительно хотите удалить актив, используйте DestroyImmediate (theObject, true);
Поэтому я меняю свой код на его предложение и сталкиваюсь с этой ошибкой:
MissingReferenceException: объект типа GameObject был уничтожен, но вы все еще пытаетесь получить к нему доступ. Ваш сценарий должен либо проверять, является ли он нулевым, либо вы не должны уничтожать объект.
Однако из моего списка ничего не удаляется, и остается первый созданный объект.
Кто нибудь сталкивался с подобной проблемой? Возможно ли то, что я пытаюсь сделать?
Любая помощь будет оценена.