Приветствую друзья, появилась такая ошибка:
"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;
}