Добрый день. Вполне вероятно это не баг Unity, а мое незнание вопроса. Тем не менее, прошу помощи в решении проблемы.
Имеется MonoBehaviour, описывающий компонент, который содержит public Texture SomeTexutre переменную. Текстура задается из среды Unity и в дальнейшем может даже не использоваться, это на дело не влияет. После перехода на другую сцену, затем вызова Resources.UnloadUnusedAssets() и ожидания завершения операции, в памяти остается висеть текстура, которая была задана через редактор в SomeTexutre.
Одним из решений проблемы стал вызов Resources.UnloadAsset(SomeTexutre) в методе OnDestroy(). Но почему Resources.UnloadUnusedAssets() не выгружает эту текстуру самостоятельно, когда сцена уже разрушена и ссылка потеряна?
Вторым решением стало использование Resources.Load(PathToTextureInResources) перед использованием текстуры. При таком подходе текстура нормально выгружается методом Resources.UnloadUnusedAssets(), но использовать строковый путь к текстуре значительно менее удобно, чем выбрать нужную текстуру через редактор.
Утечка есть и в 3.5 версии, и в 4-й тоже.
Прошу помочь в решении проблемы. Если unity в данной ситуации работает так, как и должно, - объясните, пожалуйста, как тогда правильно работать с текстурами, когда требуется их динамическая смена в рантайм.
Спасибо.