Unityでトゥイーンを使いたい時に調べるとすぐ目にするiTween。
無料のトゥイーンエンジンなのだが1つのオブジェクトに複数のmoveToを適用しようとするとうまいこといかない。
調べると親に空のオブジェクトを作り親と子別にmoveToすりゃうまくいくよって書いてあったんだけどそれでもなぜか片方のmoveToしか上手く動かなかった。
どうにかそれを回避するためにvalueToを使用した方法をメモしておく。
・やりたいこと
iTween.MoveTo(gameObject, iTween.Hash(“x”, 5, “time”, 3.0f, “easetype”, “easeInOutQuad”));
iTween.MoveTo(gameObject, iTween.Hash(“y”, 5, “time”, 2.0f, “delay”, 1.0f, “easetype”, “easeInOutQuad”));
iTween.RotateTo(gameObject, iTween.Hash(“y”, 180, “time”, 2.0f, “delay”, 1.0f, “easetype”, “easeInOutQuad”));
・以下対応処理
//###################################################
//iTWEEN TRANSFORM SETTING
//###################################################
public Vector3 posVec3;
public Vector3 rotateVec3;
void UpdatePosX( float _para ){ posVec3.x = _para; UpdatePR(); }
void UpdatePosY( float _para ){ posVec3.y = _para; UpdatePR(); }
void UpdatePosZ( float _para ){ posVec3.z = _para; UpdatePR(); }
void UpdateRotateX( float _para ){ rotateVec3.x = _para; UpdatePR(); }
void UpdateRotateY( float _para ){ rotateVec3.y = _para; UpdatePR(); }
void UpdateRotateZ( float _para ){ rotateVec3.z = _para; UpdatePR(); }
void UpdatePR()
{
transform.position = posVec3;
transform.rotation = Quaternion.Euler(rotateVec3);
}
//###################################################
void Start () {
posVec3 = transform.position;
rotateVec3 = transform.rotation.eulerAngles;
}
//上記を書いた上で実行したいタイミングで以下
iTween.ValueTo(gameObject, iTween.Hash(“from”, posVec3.x, “to”, 5, “time”, 3.0f, “easetype”, “easeInOutQuad”, “onupdate”, “UpdatePosX”));
iTween.ValueTo(gameObject, iTween.Hash(“from”, posVec3.y, “to”, 5, “time”, 2.0f, “delay”, 1.0f, “easetype”, “easeInOutQuad”, “onupdate”, “UpdatePosY”));
iTween.ValueTo(gameObject, iTween.Hash(“from”, rotateVec3.y, “to”, 180, “time”, 2.0f, “delay”, 1.0f, “easetype”, “easeInOutQuad”, “onupdate”, “UpdateRotateY”));
なんで上のが上手くいかないかというと移動処理の場合はx,y,zを個別ではなくセットでtransformに入れないといけないせいらしい。
つまり他のトゥイーンで上書きされ中は他のトゥイーンがまともに動かないぽい。
サンプルのFlythrough使ってもいいんだけどやるまでに手数が多いのとそこまで細かくてながい動きを求めていないときは面倒。
対応処理で上手くいくものの、もっとスマートにならないものか。

最近のコメント