forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D/GUI (http://forum.boolean.name/forumdisplay.php?f=167)
-   -   как вывести последовательность Label c текстурой? (http://forum.boolean.name/showthread.php?t=17978)

hog 08.03.2013 04:23

как вывести последовательность 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;
                               
                               
}
}


dsd 08.03.2013 04:49

Ответ: как вывести последовательность 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)

как раз подходит

потом собрать все текстуры в массив
PHP код:

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);


Ну и рисовать анимацию в один кадр не надо.
Надо в каждый вызов онгуи рисовать один кадр уменьшения

hog 10.03.2013 01:21

Ответ: как вывести последовательность 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
я так понимаю трабла в синтаксисе, но где?

pax 10.03.2013 01:36

Ответ: как вывести последовательность Label c текстурой?
 
PHP код:

public Texture2D[] texArray

void Start(){
texArray = new Texture2D[]{
 
audioOff,audio1,audio2,audio3,audio4,audio5,audio6,audio7,audio8,audio9audio10};




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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot