今回はUnityのスタンダードアセットのUtilityにあるTimedObjectActivatorを使ってみます。
TimedObjectActivatorはあらかじめ登録しておいたゲームオブジェクトを指定した秒数の後にアクティブに、非アクティブ、削除をする事が出来ます。
ゲーム中に固定の敵キャラクターを置いておいて、時間経過とともに登場させたいといった時に使えそうです。
TimedObjectActivatorを取り付ける
TimedObjectActivatorはAssets→StandardAssets→Utilityにあります。
これを何らかのゲームオブジェクトに取り付け、他のゲームオブジェクトの設定をします。
今回は空のゲームオブジェクトを作成し、TimedObjectActivatorという名前にして、これにTimedObjectActivatorスクリプトを取り付けて確認してみたいと思います。
Addボタンを押すとゲームオブジェクトを登録する項目が表示されるので、そこに操作したいゲームオブジェクトを設定します。
赤い枠はモードを選択し、Activateはゲームオブジェクトをアクティブに、Deactivateは非アクティブに、Destroyは削除、Reload Levelはシーンを最初から実行するのだと思うんですが、うまく動作しない為、今回は使いません。Callは使っていないと思われます。
青い枠はゲームオブジェクトを設定します。
黄色い枠は何秒後に実行するかという秒数を指定します。
紫の枠のボタンを押すと項目自体が削除されます。
黒の枠のSortボタンを押すと黄色い枠で指定した秒数を元に、ソートを行い実行順序で並べ替えられます。
TimedObjectActivatorゲームオブジェクトの子要素にCubeを作成し、それを複製して横に並べます。
これでサンプルが完成したので、実行して確認してみます。
↑のようになりました。
最後、秒数を変更してSortしたら選択していた項目の秒数も変わっているような・・・・・(;一_一)
と思ったんですが、選択中の場合は値が切り替わっていないだけで、フォーカスを外すとちゃんと変更されていました。(^^)/