Time.timeScaleの値を弄らずにポーズ動作を実現する方法について紹介します。
基本的な考え方は、「レンダラ以外のコンポーネントを無効にする」ことです。
アニメーションやコライダー、スクリプトなどのUpdate動作を持つコンポーネントを無効にすると、Update()が呼び出されなくなり、結果として動作を停止させることが出来ます。
レンダラを無効にしないのは、レンダラを無効にするとオブジェクトそのものが描画されなくなってしまうためです。
これらのUpdate()を持つコンポーネントはBehaviourクラスから派生されています。
したがって、これらのクラスのコンポーネントを取得して全て無効にすればよいわけです。
[Unity] ポーズ動作をTime.timeScale=0を使わずに実現する | ftvlog
0 notes