UnityのUtilityにあるObjectResetterを使ってみる

今回はスタンダードアセットのUtilityにあるObjectResetterを使ってみようと思います。

ObjectResetterは、ゲームオブジェクトのゲーム開始時の位置と角度に戻す為の処理が記述されています。

ObjectResetterを取り付けるだけでは処理を実行出来ないので、ObjectResetterのメソッドを使用する別のスクリプトを作成して使用します。

スポンサーリンク

ObjectResetterの取り付け

ObjectResetterはAssets→StandardAssets→Utilityにあります。

今回は、ヒエラルキー上にCubeを取り付け、これにObjectResetterと操作するOperateObjectResetterを自作し取り付けます。

ObjectResetterを取り付けたCube

ObjectResetterは空のゲームオブジェクトでブログ記事用にサンプルを分ける為だけに使用しているので、特にCubeの親にする必要はありません。

マウスの左ボタンを押したらObjectResetterのDelayedResetに5fを渡し実行します。

DelayedResetは指定した秒数が経過したら元の位置と角度にリセットする処理です。

DelayedResetの処理が終わるとSendMessageでResetメソッドを呼び出す処理があるので、呼び出した側でResetメソッドを実装しておきます。

ないとエラーが出るので用意しただけで、特別な処理を実行していません。

また位置と角度の変更を自動で行う為のMoveスクリプトも自作し取り付けます。

位置をX軸に1秒間に1m移動させ、角度は1秒毎に各軸で10度ずつ回転させています。

スクリプトを取り付けたCubeは

ObjectResetter、OperateObjectResetter、Moveを取り付けたCube

↑のようになります。

ObjectResetterはゲームの途中で、追加したゲームオブジェクトを監視し、リセットされた時にそのゲームオブジェクトの親要素の解除を行いその場に放置します。(^.^)/~~~

そこら辺も合わせて確認してみましょう。

↑のようにマウスの左ボタンを押すと、元の位置と角度に戻りますが、途中から追加したゲームオブジェクトはCubeとの親子関係を解除し、その場に放たれています。

今回はOperateObjectResetterでマウスの左ボタンを押した時に元に戻していますが、ゲームオブジェクトがある位置に来た時に元に戻すといった処理に変える事も出来ます。

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます