UnityでGameObjectをアニメーションさせたい場合、iTweenというライブラリを使うと便利です。
http://itween.pixelplacement.com/index.php
このライブラリは以下のように簡潔な記述でアニメーションを実行することができます。
iTween.MoveTo(gameOject, iTween.Hash("x", 10, "time", 1f);
ただし、あるアニメーションが終わったあとに別のアニメーションを連続して実行したい場合、コールバックメソッドを定義する必要があり面倒です。
//横→縦と移動する
void Start()
{
iTween.MoveTo(gameOject, iTween.Hash("x", 10,
"time", 1f,
"oncomplete", "OnComplete",
"oncompletetarget", gameObject);
}
void onComplete
{
iTween.MoveTo(gameOject, iTween.Hash("y", 10, "time", 1f);
}
そこでこれをサポートするヘルパークラスを作成してみました。
iTweenExtention
以下のように使用できます。
iTweenExtention.SerialPlay(
gameOject
,(iTweenAction)iTween.MoveTo, iTween.Hash("x", 10, "time", 1f)
,(iTweenAction)iTween.MoveTo, iTween.Hash("y", 10, "time", 1f)
);
記述が冗長だったりパラメータが不正な場合はランタイムエラーになったりする等の欠点があるので余裕があれば改善してきたいところです。


