経由地を通ってオブジェクトを移動させたい(iTween/path)
iTweenを使用した際、指定した点を経由する形でオブジェクトを移動させたい場合。
たとえば点Aにあるオブジェクトが点Bに到達した後点Cに行きたいとして
iTween.MoveTo(B)
iTween.MoveTo(C)
とかやった場合、MoveToBを実行した直後にMoveToCが実行され、事実上まっすぐ点Cに向かうことになる。
のでこの場合、"path"オプションを使用する。
Vector3形式の配列にA,B,Cのpositionを設定し、pathの引数に与える。
例
movePath[0] = ObjectB.transform.position;
movePath[1] = ObjectC.transform.position;
とした後に
iTween.MoveTo(tgtUnit, iTween.Hash("path", movePath, "orienttopath", true, "speed", itwSpd, "easetype", itwET));
とすると指定した点を経由しての移動ができる。
ただし配列の要素数が1つだけの場合はどうも動かないっぽいので、経由数が可変の場合は
movePath[0] = ObjectA.transform.position;
movePath[1] = ObjectB.transform.position;
movePath[2] = ObjectC.transform.position;
のように0の位置に原点ぶち込んどいた方が安全かもしれない。
オプションの"orienttopath"をtrueにすると移動中、オブジェクトが進行方向を向き続ける。
http://answers.unity3d.com/questions/384132/itween-moveto-rotation.html