Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > 2D/GUI

2D/GUI Вопросы на тему 2D графики и интерфейсов

Ответ
 
Опции темы
Старый 08.03.2013, 04:23   #1
hog
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
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 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 = { audioOffaudio1, ..., audio10};

void OnGUI () {

    
Texture2D texture texArray[cur_vol];
    
    
GUI.DrawTexture(
            new 
Rect(
                
_position.texture.width 2f
                
_position.texture.height 2f
                
texture.width
                
texture.height
                
), texture);

Ну и рисовать анимацию в один кадр не надо.
Надо в каждый вызов онгуи рисовать один кадр уменьшения
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
hog (10.03.2013)
Старый 10.03.2013, 01:21   #3
hog
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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 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,audio9audio10};

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:38.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com