「Unity/Csharp/iTween」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→値をtweenで変更する) |
(→拡大) |
||
行28: | 行28: | ||
==拡大== | ==拡大== | ||
− | iTween.ScaleTo (gameObject, iTween.Hash ("x", 4, "y", 2, "delay", 1f)); | + | iTween.ScaleTo (gameObject, iTween.Hash ("x", 4, "y", 2, "time", 1f, "delay", 1f)); |
==回転== | ==回転== |
2021年7月29日 (木) 22:35時点における版
目次
iTweenとは
オブジェクトを簡単い移動させるライブラリ
インストール
https://assetstore.unity.com/packages/tools/animation/itween-84
AssetStoreからDownload
- unity/windows/assetStoreからiTween検索
- 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));
回転
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 * 2f, 0.3090f * 2f, 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
参考
項目詳細:http://madnesslabo.net/utage/?page_id=1791
項目図:http://www.inkfood.com/wordprez/wp-content/uploads/easingFunctions.png