|
2D/GUI Вопросы на тему 2D графики и интерфейсов |
08.03.2013, 04:23
|
#1
|
AnyKey`щик
Регистрация: 08.03.2013
Сообщений: 2
Написано 0 полезных сообщений (для 0 пользователей)
|
как вывести последовательность Label c текстурой?
C#
мысль такая: выводится текстурка и после этого она должна скрыться или уменьшиться в 0.
я не нашел ничего лучше чем использовать GUI.Label с текстурой(когда все статично - красота, но не хочется чтоб Label высветившись 1 раз висел там до следующего пришествия),
Проблема в том, что последовательность уменьшаемой текстурки выводиться, но при этом я не знаю как убрать предыдущую картинку и получается наложение всех текстурок одна на другую.
Возможно это решение через задницу, и есть более красивое. подскажите...
public Texture2D audioOff;
public Texture2D audio1;
public Texture2D audio2;
public Texture2D audio3;
public Texture2D audio4;
public Texture2D audio5;
public Texture2D audio6;
public Texture2D audio7;
public Texture2D audio8;
public Texture2D audio9;
public Texture2D audio10;
public int d=5;
int cur_vol=0;
void OnGUI () {
int i =0;
while (i<=200)
{
if ((cur_vol == 0)){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audioOff);}
if (cur_vol == 1){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio1);}
if (cur_vol == 2){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio2);}
if (cur_vol == 3){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio3);}
if (cur_vol == 4){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio4);}
if (cur_vol == 5){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio5);}
if (cur_vol == 6){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio6);}
if (cur_vol == 7){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio7);}
if (cur_vol == 8){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio8);}
if (cur_vol == 9){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio9);}
if (cur_vol == 10){GUI.Label ( new Rect(Screen.width/2+120,Screen.height/2,200-i,200-i),audio10);}
i = i+d;
}
}
|
(Offline)
|
|
08.03.2013, 04:49
|
#2
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: как вывести последовательность Label c текстурой?
http://shgames.ru/index.php?title=%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D0% B8:%D0%A1%D0%BE%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B 0%D0%BC%D0%BC%D1%8B_(Coroutone)
как раз подходит
потом собрать все текстуры в массив
public Texture2D[] texArray = { audioOff, audio1, ..., audio10};
void OnGUI () {
Texture2D texture = texArray[cur_vol]; GUI.DrawTexture( new Rect( _position.x - texture.width / 2f, _position.y - texture.height / 2f, texture.width, texture.height ), texture); }
Ну и рисовать анимацию в один кадр не надо.
Надо в каждый вызов онгуи рисовать один кадр уменьшения
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.03.2013, 01:21
|
#3
|
AnyKey`щик
Регистрация: 08.03.2013
Сообщений: 2
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: как вывести последовательность Label c текстурой?
c уползанием текстуры все гуд, разобрался.
а с массивом текстур нет.
указываю явно
public Texture2D audioOff;
public Texture2D audio1;
public Texture2D audio2;
public Texture2D audio3;
public Texture2D audio4;
public Texture2D audio5;
public Texture2D audio6;
public Texture2D audio7;
public Texture2D audio8;
public Texture2D audio9;
public Texture2D audio10;
public Texture2D[] texArray = { audioOff,audio1,audio2,audio3,audio4,audio5,audio6,audio7,audio8,audio9, audio10};
ругается A field initializer cannot reference the nonstatic field, method, or property
я так понимаю трабла в синтаксисе, но где?
|
(Offline)
|
|
10.03.2013, 01:36
|
#4
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: как вывести последовательность Label c текстурой?
public Texture2D[] texArray;
void Start(){ texArray = new Texture2D[]{ audioOff,audio1,audio2,audio3,audio4,audio5,audio6,audio7,audio8,audio9, audio10}; }
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:38.
|