2015-09-01 6 views
0

У меня есть Texture2D, который можно создавать и изменять размер, а также быстро уничтожать в зависимости от ввода ключа пользователя.Unity3D Texture2D.Resize приводит к ошибке: afterDecrement> = 0

Если я быстро ударил ключи, чтобы уничтожить/создать текстуру я иногда получаю ошибки, очевидно, вызванную текстурой:

afterDecrement >= 0 
UnityEngine.Texture2D:Resize(Int32, Int32) 

Кто-нибудь знает, что это значит и как это исправить?

+1

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

+0

Спасибо за информацию! Я думаю, что в Unity обычно не нужно уничтожать объекты и позволить Destroy (gameObject) позаботиться обо всем этом? У меня такое чувство, что попытка утилизации дочерних объектов, графиков и т. Д. Вручную приведет к таким ошибкам. Извините, я немного параноик утечки памяти. – BadmintonCat

ответ

1

Исправлено! В моем представлении метод недействительности действительно существовал условие, когда ширина, заданная для текстуры, равнялась 0, а в следующем кадре была установлена ​​соответствующая ширина. Я добавил чек, и исключение больше не появляется.

 Смежные вопросы

  • Нет связанных вопросов^_^