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)で指定できることから、FlashやFlex感覚で扱えるので、
2D画像の場合は、前回のGUITextureをiTween①よりも、利便性があるかも。