[Unity] Time.timeScale=0の問題点
・timeScale=0とアニメーションの関係
前回の記事でゲームの進行を一時停止するとき、Time.timeScale = 0とすることですべてのキャラの動き止めることができることを書きました。
しかし、この方法で以下のような弊害が出てきます。
・アニメーションできなくなる
・WaitForSecondsで無限待機してしまう
・Time.deltaTimeが0になる
ほかにどんな弊害が出てくるかは私にはわかりません・・・
Time.timeScaleの値を変えることは、グローバルな変数であるTime.timeの時間の進行速度を変えることになるので、いろいろな場面で融通が利かなくなりそうです。
(たとえば、ポーズ中にアニメーションさせる場合など)
その他の無限待機やdeltaTime=0の現象もTime.timeが進行しなくなることが原因でおこるものと考えられます。
したがって、Time.timeScaleの値をむやみに設定するのは控えたほうがよさそうです。
Time.timeScale=0設定の効果的な代替手段はわかりませんが、恐らくゲームオブジェクトそれぞれにOnPause()メソッド等の一時停止メソッドを実装することになるのではないかと思います。