Страница 1 из 1

проблема с многоразовой загрузкой аддитивной сцены

СообщениеДобавлено: 19 авг 2019, 12:21
redfenix
Всем доброго дня. Столкнулся с такой проблемой. У меня есть сцена которую я подгружаю к текущей аддитивно.
Синтаксис:
Используется csharp
SceneManager.LoadScene(PlayScene, LoadSceneMode.Additive);

При первой загрузке все ок. Все скрипты на сцене работают корректно. Далее выгружаем сцену
Синтаксис:
Используется csharp
 SceneManager.UnloadSceneAsync(PlayScene);

После этого загружаем эту же сцену второй раз.

теперь строка кода наподобие этой в любом скрипте со сцены
Синтаксис:
Используется csharp
var button = GetComponentInChildren<Button>();

приведет к ошибке MissingReferenceException: The object of type 'имя скрипта' has been destroyed but you are still trying to access it.

Похоже каким то образом вызываются скрипты с уже уничтоженных объектов с предыдущей загрузки сцены.

Кто подскажет из-за чего это происходит и как поправить?

Re: проблема с многоразовой загрузкой аддитивной сцены

СообщениеДобавлено: 19 авг 2019, 14:16
~AvA~
Можешь полный код показать?

Re: проблема с многоразовой загрузкой аддитивной сцены

СообщениеДобавлено: 19 авг 2019, 21:50
hromoyDron
Была подобная ошибка.

Ты загружаешь сцену синхронно, а выгружаешь асинхронно.
Возможно она не успевает выгрузиться.
Удостоверься, что она успела выгрузиться. Подожди пока сцена выгрузится и начинай новую загрузку только в следующем кадре.

Re: проблема с многоразовой загрузкой аддитивной сцены

СообщениеДобавлено: 20 авг 2019, 13:00
redfenix
Нашел ошибку. В коде присутствовал статический делегат который не обнулялся при рестарте сцены и хранил в себе ссылки на уничтоженные объекты.