にほんブログ村 IT技術ブログ IT技術メモへ ブログ村 IT技術ブログへ ブログ村 オヤジ日記へ ブログランキング・にほんブログ村へ

Try Unity _4 GUITextureのクリックイベント③


今回はGUITexure(_bt1)をクリックした際に、別のGUITexter(_pop1)を
上からスライドインして、表示してみます。


GUITexter(_pop1)は、画面の上になるように配置します。
画面の上からスライドインさせたいので、インスペクター上での
PixelInsetの設定位置は、

x位置:0
y位置:画面解像度の高さ(僕のPCはフルHDなんで1080にしてます)
width:表示する画像の幅サイズ
height:表示する画像の高さサイズ


    public float incX = 0f;
    public float incY = 50f;

    GameObject obj = null;
    bool pop1_flg=false;
        
    void OnMouseDown()
    {
        
        if (gameObject.name == "_bt1") {

            obj = GameObject.Find("_pop1");
            if (obj)
            {
                //クリックされたオブジェクトの名前が_bt1の時の処理
                pop1_flg = true;
                
            }
            else if (gameObject.name == "_bt2")
            {
                //クリックされたオブジェクトの名前が_bt2の時の処理

            }

        }

    }

    void Update()
    {

        if (pop1_flg==true) {

            //pop1_flgがtrueの時、 _pop1のゲームオブジェクトを取得

            GameObject g = GameObject.Find("_pop1");

            Rect tmp = g.guiTexture.pixelInset;

            if (tmp.y >= 0) {

        //pop1のpixelInset y位置を変数で指定した分ずつ減算し、0以下になるまで繰り返す
                tmp.y -= incY;
                g.guiTexture.pixelInset = tmp;

            }
         
        }

    }



今回は、原始的にupdate内で行いましたが、スライドインや、フェードイン、スライドアウトやフェードアウトなど
視覚効果を伴うものはitweenというプラグインを利用するととっても便利にできるようです。

itweenはposition、scale、rotationなどのプロパティを自由にアニメーション(Tween)させるAssetです。
次回はitweenを使ってみようと思います。