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

Try Unity _6 GUITextureをiTween②

ども。

前回はiTween.MoveFromやiTween.MoveToを使って、GUITextureのTransform自体をトゥイーンさせましたが、今回は、GUITextureのPixelInsetの値をiTweenで可変させるにはどうすれば良いかというお話です。

今回も、2D画像を画面上からスライドインさせてみます。


利用するオブジェクト

①クリックするボタン用オブジェクト

_bt1 ( GUITexture )

TransFormのPositionは X=0、Y=0、Z=1
GUITextureにはアイコン画像を指定、
PixcelInsetにはX=アイコン配置位置X、Y=アイコン配置位置Y、WIDTH=アイコン横サイズ、HEIGHT=アイコン縦サイズ


②スライドイン用オブジェクト

_pop1 ( GUITexture )

TransFormのPositionは X=0、Y=0、Z=1
GUITextureにはアイコン画像を指定、
PixcelInsetにはX=0、Y=1080、WIDTH=アイコン画像の横サイズ、HEIGHT=アイコン画像の縦サイズ
※Y=1080は、僕のPCがフルHD(1920×1080)なので、画面の左上(X=0、Y=1080)に配置するという意味。


下記のスクリプトを作って、_bt1にアタッチ。
GameObject image_Logoをpublicにしていますので、
インスペクター上でimage_Logoに_pop1 を指定してください

  public GameObject image_Logo;
    
    void OnMouseDown()
    {
        
        if (gameObject.name == "_bt1")
        {
            //クリックされたオブジェクトの名前が_bt1の時の処理
            
            //開始位置の指定 X、Y位置はテクスチャの左下のピクセル位置
            Vector2 start_pos = new Vector2(0,1080);

            //終了位置の指定 X、Y位置はテクスチャの左下のピクセル位置
            Vector2 stop_pos = new Vector2(0, 0);

            // Hashの中身は 開始位置(Rect)、終了位置(Rect)、トゥイーン時間、コールバック関数(update)、イージング指定
            iTween.ValueTo(image_Logo, iTween.Hash("from", start_pos, "to", stop_pos, "time", 2.0, "onupdate", "iTween_Update", "easetype", "easeinoutback"));	
            
        }

    }

    void iTween_Update(Vector2 newCoordinates)
    {
        //コールバック引数をVector2Dで受け取る
        Rect tmp = image_Logo.guiTexture.pixelInset;
        tmp.y = newCoordinates.y;
        image_Logo.guiTexture.pixelInset=tmp;    
        
    }

2D座標(XやY)で指定できることから、FlashFlex感覚で扱えるので、
2D画像の場合は、前回のGUITextureをiTween①よりも、利便性があるかも。