【Unity】Chronosを使用してゲーム内で時間操作ギミックを導入する
下記ゲーム内でChronosを使用して時間操作をしているので、そのことについて記載します。
使用したツール / 環境
- Unity 2018.13f1
Chronosを使用したギミックについて
前の記事でも載せた動画ですが、4s~で敵から飛んでくる攻撃(Cube)が赤くなり、スピードが遅くなっていると思います。これがChronosを利用している箇所です。
どのような処理をおこなっているのか
- トリガーを引いている間、ChronosのAreaClockを有効にする
- AreaClockを有効にしている間に敵の攻撃が一定の距離に近づいてきたら敵の攻撃のTimeScaleの値を 0.1 にする
- TimeScaleが1未満になっているときはキューブの色を赤色に変える
大まかに書くと上記3つの処理で実現できます。2の処理に関しては特に実装なくChronosの機能で実現できるので、1のAreClockを有効にする部分とキューブの色を変える処理を実装すれば問題ありません。
今回作成したオブジェクト
今回のスクリプト
AreaClockの有効化
オブジェクトと同じく、AreaClockMakingというスクリプトを作成しました。
public GameObject areaClock;
ここでオブジェクトで配置したAreaClockをInspectorから指定します。
areaClock.SetActive(true);
あとは条件によってSetActive(true)したりSetActive(false)したりしています。
_guageDecreasing関連の処理は、下記記事で記載している様に、ゲージの処理に関わる部分です。AreaClockを有効にしている間はゲージが削減するようにしています。あと、ゲージが0以上でないと時間操作ができないようにしています。
感想
時間操作を使用するともっと面白い表現ができそうな気はする