Четверг, 28 Марта 2024, 22:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Создать объект в OnDestroy [РЕШЕНО] (странная ошибка Юнити, которая должна исправляться сама)
Создать объект в OnDestroy [РЕШЕНО]
alexsilentДата: Среда, 21 Мая 2014, 17:46 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Приветствую друзья, появилась такая ошибка:
"Some objects were not cleaned up when closing the scene. (Did you spawn new GameObjects from OnDestroy?)"
когда я создаю объект внутри функции OnDestroy(), и отключаю тест игры или перезагружается уровень,
я загуглил и сделал коррекцию для остановки теста игры c помощью переменной isShuttingDown:

Код

#pragma strict

var resources : String;
var count : int;

function OnDestroy() {
     if (isShuttingDown) return;
     Global.LastCreatedObject = Instantiate(LoadData.GO(resources),transform.position,Quaternion.identity);
     Global.LastCreatedObject.transform.position.y = Global.CurrentPlayerObject.position.y;
     Global.LastCreatedObject.SendMessage("SetParameter",count,SendMessageOptions.DontRequireReceiver);
}

static var isShuttingDown : boolean = false;
function OnApplicationQuit() {
     isShuttingDown = true;
}


но теперь ошибка выскакивает при перезагрузке сцены, неужели Юнити сам не может отследить свои проблемы,
чтобы удалялись те объекты созданные в течении уровня и не делать такие операции при операциях перезагрузки и кнопки "стоп"?
Как написать вручную чтобы не происходила OnDestroy() операция при перезагрузке уровня?

Добавлено (21.05.2014, 16:46)
---------------------------------------------
Наверное, самое плохое от этой ошибки, то что у меня на уровне генерируются много
не удалённых копий объектов (созданных в течении игровой сессии) и приходится их удалять вручную.

Добавлено (21.05.2014, 17:46)
---------------------------------------------
Решил проблему, но считаю что это должно выполняться автоматически в Юнити:

Код

static var isShuttingDown : boolean = false;
function OnDisable() {
   isShuttingDown = true;
}


Сообщение отредактировал alexsilent - Среда, 21 Мая 2014, 17:46
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Создать объект в OnDestroy [РЕШЕНО] (странная ошибка Юнити, которая должна исправляться сама)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг