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①よりも、利便性があるかも。