facebook twitter hatena line email

「Unity/Csharp/iTween」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
 
(同じ利用者による、間の40版が非表示)
行6: 行6:
  
 
AssetStoreからDownload
 
AssetStoreからDownload
 +
 +
#unity/windows/assetStoreからiTween検索
 +
#iTweenをimportする
 +
 +
csにimportの記述は特にしなくてよい。
  
 
==数秒間で座標移動する==
 
==数秒間で座標移動する==
 
例:mcオブジェクト
 
例:mcオブジェクト
 
  GameObject gameObject = transform.Find ("mc").gameObject;
 
  GameObject gameObject = transform.Find ("mc").gameObject;
  iTween.MoveTo(gameObject, new Vector3(2f, 2f, 0), 2.0f);  
+
  iTween.MoveTo(gameObject, new Vector3(2f, 2f, 0), 2.0f);
 +
gameObjectが現在いる場所から2, 2へ移動する
 +
 
 +
==iTween.Hashで上記と同じことをやる==
 +
iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "y", 2, "time", 2));
 +
 
 +
==等速で移動==
 +
iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "y", 2, "time", 2, "EaseType", iTween.EaseType.linear));
  
 
==数秒後に数秒間移動する==
 
==数秒後に数秒間移動する==
  iTween.MoveTo (gameObject, iTween.Hash ("x", 3, "delay", 2, "time", 3));
+
iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "delay", 2, "time", 3));
 +
 
 +
==拡大==
 +
iTween.ScaleTo (gameObject, iTween.Hash ("x", 4, "y", 2, "time", 1f, "delay", 1f, "easeType", iTween.EaseType.easeOutBack));
 +
 
 +
等倍に拡大。ダイアログとかの、ポップアップとかに使える?
 +
iTween.ScaleTo(confirmPanel, iTween.Hash("x", 1, "y", 1, "time", 0.1f, "easeType", iTween.EaseType.easeOutBack));
 +
 
 +
==回転==
 +
iTween.RotateAdd(obj, iTween.Hash("easeType", iTween.EaseType.linear, "z", 360.0f, "time", 100f, "loopType", iTween.LoopType.loop));
  
 
==ループ==
 
==ループ==
  iTween.MoveTo (gameObject, iTween.Hash ("x", 3, "delay", 2, "time", 3, "loopType", "loop"));
+
iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "time", 3, "loopType", "loop"));
  
 
==往復==
 
==往復==
  iTween.MoveTo (gameObject, iTween.Hash ("x", 3, "delay", 2, "time", 3, "loopType", "pingpong"));
+
iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "time", 3, "loopType", "pingpong"));
 +
 
 +
==点滅ループ==
 +
iTween.ColorTo(gameObject, iTween.Hash("r" ,0.7f, "g" ,0.7f, "b" ,0.7f, "time", 0.5f, "loopType", "pingpong"));
 +
 
 +
==点滅っぽいループ(透明版)==
 +
iTween.ColorTo(gameObject, iTween.Hash("a", 0.5f, "time", 1.0, "loopType", "pingpong"));
 +
 
 +
==完了イベント追加==
 +
iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "y", 2, "time", 2,
 +
"oncomplete", "OncompleteHandler",
 +
"oncompletetarget", gameObject));
 +
 
 +
void OncompleteHandler() {
 +
Debug.Log ("OncompleteHandler");
 +
}
 +
oncompletetargetを指定するgameObjectは第一引数のgameObjectではなく、
 +
oncompleteで指定したメソッドが存在するGameObjectを指定する。
 +
 
 +
以下で代用もできる。
 +
Invoke("OncompleteHandler", 2f);
 +
 
 +
==震えるアクション==
 +
iTween.ShakePosition(this.gameObject, iTween.Hash("x", 0f, "y", -4f, "z", 0f, "time", 0.2f));
 +
 
 +
==星形==
 +
Vector3[] movepath = new Vector3[6];
 +
movepath[0].Set(0f, 1f, 0f); // 1
 +
movepath[1].Set(0.5878f, -0.8090f, 0f); // 5
 +
movepath[2].Set(-0.9511f, 0.3090f, 0f); // 9
 +
movepath[3].Set(0.9511f, 0.3090f, 0f); // 3
 +
movepath[4].Set(-0.5878f, -0.8090f, 0f); // 7
 +
movepath[5].Set(0f, 1f, 0f); // 1
 +
// 星型頂点 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10137274530
 +
iTween.MoveTo(obj,iTween.Hash("path",movepath,"time",4, "easetype",iTween.EaseType.linear, "loopType", "pingpong"));
 +
 
 +
==値をtweenで変更する==
 +
gameObjectが2つあるが、そこは、合わせる。
 +
<pre>
 +
void Start()
 +
{
 +
        Hashtable hash = new Hashtable(){
 +
            {"from", 2f},
 +
            {"to", 0f},
 +
            {"time", 1f},
 +
            {"easeType",iTween.EaseType.easeOutCubic},
 +
            {"onupdate", "OnUpdateValue"},
 +
            {"onupdatetarget", gameObject},
 +
        };
 +
        iTween.ValueTo(gameObject, hash);
 +
}
 +
void OnUpdateValue(float value)
 +
{
 +
        Debug.Log("value=" + value);
 +
}
 +
</pre>
 +
 
 +
==アニメーションを途中でやめる==
 +
iTween.Stop(gameObj);
 +
 
 +
直後のMoveToなどを使うと、動作しないので、Invokeなどで0.01fなど遅らせて実行すればよい。
 +
https://gomafrontier.com/unity/225
 +
==ローカル座標を指定==
 +
isLocalをtrueへ
 +
iTween.MoveTo(obj, iTween.Hash("x",  20f, "y", 15f, "time", 2f, "isLocal", true));
 +
 
 +
参考:http://halcyonsystemblog.jp/blog-entry-103.html
 +
 
 +
==参考==
 +
項目詳細:http://madnesslabo.net/utage/?page_id=1791
 +
 
 +
項目図:http://www.inkfood.com/wordprez/wp-content/uploads/easingFunctions.png

2021年8月3日 (火) 00:15時点における最新版

iTweenとは

オブジェクトを簡単い移動させるライブラリ

インストール

https://assetstore.unity.com/packages/tools/animation/itween-84

AssetStoreからDownload

  1. unity/windows/assetStoreからiTween検索
  2. iTweenをimportする

csにimportの記述は特にしなくてよい。

数秒間で座標移動する

例:mcオブジェクト

GameObject gameObject = transform.Find ("mc").gameObject;
iTween.MoveTo(gameObject, new Vector3(2f, 2f, 0), 2.0f);

gameObjectが現在いる場所から2, 2へ移動する

iTween.Hashで上記と同じことをやる

iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "y", 2, "time", 2));

等速で移動

iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "y", 2, "time", 2, "EaseType", iTween.EaseType.linear));

数秒後に数秒間移動する

iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "delay", 2, "time", 3));

拡大

iTween.ScaleTo (gameObject, iTween.Hash ("x", 4, "y", 2, "time", 1f, "delay", 1f, "easeType", iTween.EaseType.easeOutBack));

等倍に拡大。ダイアログとかの、ポップアップとかに使える?

iTween.ScaleTo(confirmPanel, iTween.Hash("x", 1, "y", 1, "time", 0.1f, "easeType", iTween.EaseType.easeOutBack));

回転

iTween.RotateAdd(obj, iTween.Hash("easeType", iTween.EaseType.linear, "z", 360.0f, "time", 100f, "loopType", iTween.LoopType.loop));

ループ

iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "time", 3, "loopType", "loop"));

往復

iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "time", 3, "loopType", "pingpong"));

点滅ループ

iTween.ColorTo(gameObject, iTween.Hash("r" ,0.7f, "g" ,0.7f, "b" ,0.7f, "time", 0.5f, "loopType", "pingpong"));

点滅っぽいループ(透明版)

iTween.ColorTo(gameObject, iTween.Hash("a", 0.5f, "time", 1.0, "loopType", "pingpong"));

完了イベント追加

iTween.MoveTo (gameObject, iTween.Hash ("x", 2, "y", 2, "time", 2,
			"oncomplete", "OncompleteHandler", 
			"oncompletetarget", gameObject));
void OncompleteHandler() {
	Debug.Log ("OncompleteHandler");
}

oncompletetargetを指定するgameObjectは第一引数のgameObjectではなく、 oncompleteで指定したメソッドが存在するGameObjectを指定する。

以下で代用もできる。

Invoke("OncompleteHandler", 2f);

震えるアクション

iTween.ShakePosition(this.gameObject, iTween.Hash("x", 0f, "y", -4f, "z", 0f, "time", 0.2f));

星形

Vector3[] movepath = new Vector3[6];
movepath[0].Set(0f, 1f, 0f); // 1
movepath[1].Set(0.5878f, -0.8090f, 0f); // 5
movepath[2].Set(-0.9511f, 0.3090f, 0f); // 9
movepath[3].Set(0.9511f, 0.3090f, 0f); // 3
movepath[4].Set(-0.5878f, -0.8090f, 0f); // 7
movepath[5].Set(0f, 1f, 0f); // 1
// 星型頂点 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10137274530
iTween.MoveTo(obj,iTween.Hash("path",movepath,"time",4, "easetype",iTween.EaseType.linear, "loopType", "pingpong"));

値をtweenで変更する

gameObjectが2つあるが、そこは、合わせる。

void Start()
{
        Hashtable hash = new Hashtable(){
            {"from", 2f},
            {"to", 0f},
            {"time", 1f},
            {"easeType",iTween.EaseType.easeOutCubic},
            {"onupdate", "OnUpdateValue"},
            {"onupdatetarget", gameObject},
        };
        iTween.ValueTo(gameObject, hash);
}
void OnUpdateValue(float value)
{
        Debug.Log("value=" + value);
}

アニメーションを途中でやめる

iTween.Stop(gameObj);

直後のMoveToなどを使うと、動作しないので、Invokeなどで0.01fなど遅らせて実行すればよい。 https://gomafrontier.com/unity/225

ローカル座標を指定

isLocalをtrueへ

iTween.MoveTo(obj, iTween.Hash("x",  20f, "y", 15f, "time", 2f, "isLocal", true));

参考:http://halcyonsystemblog.jp/blog-entry-103.html

参考

項目詳細:http://madnesslabo.net/utage/?page_id=1791

項目図:http://www.inkfood.com/wordprez/wp-content/uploads/easingFunctions.png