Мне нужно, чтобы у меня при нажатии на кнопку появлялась GUITexture, при повторном нажатии она выгружалась и загружалась новая. Игра для iOS. Для теста написал скрипт, который выгружает текстуры через определенный промежуток времени.
Code
function OnGUI ()
{
DestroyTextures ();
}
function DestroyTextures ()
{
var i = Resources.Load("1ps");
GUI.DrawTexture(new Rect(275, 240, 460, 248), i, ScaleMode.ScaleToFit, true, 0f);
yield WaitForSeconds(1);
Resources.UnloadUnusedAssets();
i = null;
}
Он не работает, как я понимаю из-за того, что 1ps изпользуется. Но как сделать так, чтобы она(или все текстуры) выгрузились в не зависимости от того, используется он или нет?
Ну а вообще мне надо:
Code
var i = 1;
var iBox : GameObject;
function iFuntion()
{
switch (i)
{
case 1:
Resources.UnloadUnusedAssets();
iBox.image = Resources.Load("1i");
break;
case 2:
Resources.UnloadUnusedAssets();
iBox.image = Resources.Load("2i");
break;
case 3:
Resources.UnloadUnusedAssets();
iBox.image = Resources.Load("3i");
break;
}
}
То есть, чтобы выгружалась старая текстура, а за ней загружалась новая. И это забивало минимум памяти. Может кто-то подсказать? Просьба разъяснить ибо я еще не профи).
P.S.: Или может я вообще все делаю не так?
Добавлено (18.06.2012, 02:17)
---------------------------------------------
Нашел решение проблемы, но только для Unity 3.5.2:
Resources.UnloadAsset(Object asset);
Добавлено (18.06.2012, 02:19)
---------------------------------------------
Но у меня 3.5. Новую версию скачать, к сожалению, не могу.