【Unity】Time.timeScaleでCharacterControllerを使った移動も影響を受ける?
Unityにおけるキャラクターコントローラ(CharacterController
コンポーネント)を用いた移動は、Time.timeScale
の値によって影響を受けることがあります。具体的には、キャラクターコントローラでの移動は、通常、Update
メソッドまたはFixedUpdate
メソッド内で行われ、移動計算にはTime.deltaTime
を使用するのが一般的です。
影響
Time.timeScale
が影響する場合
- 移動速度の調整:
Time.timeScale
を変更すると、Time.deltaTime
がスケーリングされるため、キャラクターの移動速度に直接影響します。例えば、Time.timeScale
が0.5であれば、キャラクターの移動速度も通常の半分になり、ゲームがスローモーションで動作しているように見えます。 - アニメーションとの同期: キャラクターコントローラを使用する場合、しばしば移動速度とアニメーションの速度を同期させる必要があります。
Time.timeScale
が変更されると、これらの同期にも影響を与える可能性があります。
Time.timeScale
が影響しない場合
- ユーザー入力の検出: 移動命令がユーザー入力に基づいている場合、
Time.timeScale
は入力の検出自体には影響しませんが、その入力に基づく移動の実行速度は影響を受けます。 - 物理的な影響: キャラクターコントローラはUnityの物理エンジン(Rigidbodyを使用しない)とは独立して動作するため、物理的な力(重力や摩擦など)の影響を受けにくいです。しかし、
Time.timeScale
が0の場合は、物理エンジンが更新されないため、これに基づく任意の処理も停止します。
Time.deltaTimeとTime.timeScaleとの関係性
Time.deltaTime = 実際のフレーム間時間 × Time.timeScale
ディスカッション
コメント一覧
まだ、コメントがありません