「Unity/Csharp/iTween」の版間の差分
提供: 初心者エンジニアの簡易メモ
(同じ利用者による、間の39版が非表示) | |||
行6: | 行6: | ||
AssetStoreからDownload | AssetStoreからDownload | ||
+ | |||
+ | #unity/windows/assetStoreからiTween検索 | ||
+ | #iTweenをimportする | ||
+ | |||
+ | csにimportの記述は特にしなくてよい。 | ||
+ | |||
+ | ==アンインストール== | ||
+ | Assets/Plugins/Pixelplacement を削除 | ||
==数秒間で座標移動する== | ==数秒間で座標移動する== | ||
例: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", 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("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.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 |
2024年8月3日 (土) 19:07時点における最新版
目次
iTweenとは
オブジェクトを簡単い移動させるライブラリ
インストール
https://assetstore.unity.com/packages/tools/animation/itween-84
AssetStoreからDownload
- unity/windows/assetStoreからiTween検索
- iTweenをimportする
csにimportの記述は特にしなくてよい。
アンインストール
Assets/Plugins/Pixelplacement を削除
数秒間で座標移動する
例: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