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の位置指定でトゥイーンすると簡単だと思います。