「Time.timeScale = 0」でポーズ機能を実装した場合に、止まる物と止まらない物がある。
以下その一覧。
止まらない物
- Update
- Transformの操作
- コルーチン(yield return new WaitForSecondsRealtime)
- コルーチン(yield return null)
- Time.unscaledDeltaTimeを使う処理全般
止まる物
- FixedUpdate
- 物理動作(Rigidbody.AddForce等)
- コルーチン(yield return new WaitForSeconds)
- Time.deltaTimeを使う処理全般
設定の変更によって両方あり得る物
以下は、設定するモードによってtimeScaleの影響を受けるかunscaledTimeの影響を受けるか決まる。
- Animator
- Particle System
- 【外部アセット】DOTween (DOTween Animation)
Animatorの設定の変更方法
インスペクターで、Animatorの「Update Mode」を「UnscaledTime」に変更。
DOTween Animationの設定の変更方法
インスペクターで、DOTween Animationの「Ignore TimeScale」を有効にする。
Particle Systemの設定の変更方法
インスペクターで、Particle Systemの「Delta Time」を「Unscaled」に変更。