Unity / VRゲーム開発日記@長崎

Unityを使ったVRのゲーム開発をやってます。

iTweenで動作しているオブジェクトを一括制御する

オブジェクトの移動を物理制御ではなく、
決められた位置に移動させたい場合に便利なのが
無料で公開されているAsset、iTweenです。


AssetStore - iTween


自信で制作してるゲームも2D系では
物理動作を利用しない場合が多いので、
iTweenを多用しています。


iTweenの使い方については、
ActionScript入門Wikiさんの
以下のページにわかりやすくまとめられています。
ActionScript入門Wiki - Unity - トゥイーンライブラリiTweenを使用する


先日リリースしたまっすぐ勇者は、
ゲーム開始後自動で勇者が移動するという仕様で、
iTweenを使ってマス移動をしているのですが
今回はゲームを停止させるためのPAUSE機能を実装しました。


そこで、利用したのが
iTweenを利用しているオブジェクトの一括制御です。


PAUSEを押した時に、一時的にiTweenを利用している
オブジェクトの制御を止め、
PAUSEを解除した時に、iTween制御を再開するというのをやりたかったのですが、
それぞれの個々のオブジェクトに対して、停止を掛ける必要はなく、
iTweenの下記staticメソッドで一括制御が出来ました。

// 一時停止
iTween.Pause();

// 再開
iTween.Resume();


ちなみに、iTween.Stop()でも停止はできるのですが、
こちらは完全停止という形になり、再開はできなくなります。


また、一点注意があるのですが、
iTween.Pause()
をかけたままオブジェクトを削除したり、シーンを遷移したりすると
オブジェクトへの参照が残るのか、次回iTweenの制御をした際に
エラーとなる場合があります。


なので、iTweenでの制御中にオブジェクトの削除、またはシーンの遷移をする場合は
オブジェクト削除前にiTween.Stop()をかけるようにしましょう。