Time.timeScaleの効果について
連投3つ目です。毎日書いてる風にしようかと思ったんですが面倒なので一気に投稿します。今回はTime.timeScaleを簡単にまとめます。
Time.timeScaleについて
ゲーム内の時間を操作することができます。Time.timeScale = 0
であるとゲーム内の時間が止まります。Time.timeScale = 1
であれば現実の時間と同じ時間でゲームが動きます。しつこいですが、Time.timeScale = 0.5
であるとゲーム内の時間が半分となり、いわゆるスローモーションになります。
Updateは止まらない!
最初はバグかと思いました。本当に。「止まってないじゃん」って。
実はTime.timeScale = 0
は全ての関数が動かなくなる訳ではありません。
よく考えると当たり前ですね。どうやって復帰するんだよって話です。
止まるもの / 止まらないもの
止まるものとしては以下のようなものです。
アニメーション
Update / LateUpdate関数内の物理挙動系
FixedUpdate関数
止まらないものとしては以下のようなものです。
Update / LateUpdate関数内の物理挙動以外
止まらないものはどうやって管理されている?
どうやらTime.realtimeSinceStartup
を使っているようです。Time.realtimeSinceStartup
はTime.timeScale
に関係なくスタート時からの経過時間(=現実時間)を持っている変数です。
おわり
知ってる人からすると当たり前なんでしょうが…最初は戸惑いました..orz
意識して使っていきましょうー!