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

Try Unity _5 GUITextureをiTween①

前回はUPDATE関数内で、pixelInset.yの値を変化させることで、上からのスライドインを実現してみました。

今回はこれをiTweenのプラグインを使って実行してみようと思うのですが、その前に基本的な位置関係についての知識のおさらいです。

① まず、GUITextureは2Dでの平坦画像として表示を行うものですが、
  あくまでもUNITYの3D空間の中に存在しているものであるということ。

② なので、配置したGUITextureをインスペクターで見た場合、TransformのPposition 
  X、Y、ZはVector3で、3D空間の位置を指定できる。GUITextureをシーンビューに
  配置したときは気づかなかったけど、GUITextureは空のゲームオブジェクト(trans
  form)にアタッチされて配置されるんだね。今ようやく全てのオブジェクトがそう
  なんだと理解できた。

③ でも、GUITextureのPixelInsetのX、Y、WIDTH、HEIGHTで調整すると3D空間やカメラ
  の位置には左右されず、常に画面上のX軸、Y軸に沿って表示されるため、アスペク
  ト比や画面の大きさには表示されない。だから当然、メインカメラの位置や向きを
  変えてもGUITextureの位置は変化しない。


上記が理解できていれば、GUITextureをトゥイーンするもの簡単だと思いますので、
いよいよ実装してみたいと思います。


iTweenの利用準備

①iTweenはUNITYのアセットストアから購入してもよいですし、
 Free版であれば、Google Codeからでも、ダウンロード可能です。
 僕はFree版なので、Google Codeからダウンロードしました。
②ダウンロードしたZIPを解凍し、iTween.csファイルをプロジェクトビューにドラッグ。
③これで、iTweenを利用する準備ができました。


iTweenの利用

①GUITexureを配置し、Textureに適当な画像をセットします。
②GUITexureはimage_Logoという名前をつけました。
③新規で下記のスクリプトを作成し、image_Logoにアタッチします。
④インスペクターでpublicで指定しているimage_LogoにGUITexureのimage_Logoを
 アタッチします。
⑤実行すると無事トゥイーンすると思います。

    public GameObject image_Logo;

  //OnEnableはGameObjectであるGUITexureが"active"になった瞬間に呼ばれる
    void OnEnable(){

        //初期位置: GUITexureがアクティブになった際、X=0.5、Y=0.5、Z=0.5、つまり真ん中に配置しなおす。
        image_Logo.transform.position = new Vector3(0.5f, 0.5f, 0f);
		
        //スライドイン設定: 1秒後、1秒かけて、X=0、Y=0、つまり左下から開始する。
    //この動作で左下から真ん中までのトゥイーンが行われる
        iTween.MoveFrom(image_Logo, iTween.Hash("x", 0, "y", 0, "time", 1.0, "delay", 1.0));
		
	//スライドアウト設定: 3秒後、1秒かけて、X=1、Y=1、つまり右上に移動する。
    //この処理が行われるのは3秒後なので、すでにスライドインが終了した状態、つまり
    //真ん中から右上へのトゥイーンが行われる	
        iTween.MoveTo(image_Logo, iTween.Hash("x", 1.0f, "y", 1.0f, "time", 1.0, "delay", 3.0, "easetype", "easeincubic"));
	}


今回は、実行ボタンを押下後、シーンがロードされ、GUITexureがアクティブになった時に実行されるようOnEnableメソッドを使いました。画面領域外からスライドインするようなものは、iTween.MoveToを使って、Vector3の位置指定でトゥイーンすると簡単だと思います。