経由地を通ってオブジェクトを移動させたい(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