ドキュメント

Unity Engine

Unity Engine

ゲーム内時間とリアルタイム

The configurable relationship between in-game time and real time and the potential effects.
読み終わるまでの所要時間 3 分最終更新 1ヶ月前

Time.timeScale プロパティは、ゲーム世界でのリアルタイムに対する相対的な時間の経過率を定義します。
Time.timeScale
値が 1.0 の場合は、ゲーム内時間がリアルタイムと一致することを表します。値を 2.0 にすると、ゲーム内の時間が現実世界の 2 倍速くなり、ゲーム内のアクションが速くなります。値を 0.5 にすると、ゲームプレイは半分のスピードに減速します。値を 0 にすると、ゲーム内時間が完全に停止します。
Time.timeScale
は実際には実行を遅くしませんが、代わりに Time.deltaTime と Time.fixedDeltaTime で
Update
関数と
FixedUpdate
関数に報告される時間ステップを変更します。
Update
機能は、タイムスケールを縮小した場合にも同じ高頻度で呼び出される可能性がありますが、各フレームの
Time.deltaTime
の値は小さくなります。他のスクリプト関数はタイムスケールの影響を受けないため、例えばゲームが一時停止しているときに通常のインタラクションで GUI を表示できます。
スローモーションなどの特殊な時間効果では、ゲーム時間の経過を遅くして、コード内のアニメーションや時間ベースの計算を低速で行うようにすると有効な場合があります。さらに、ゲームの一時停止時のように、ゲーム時間を完全に凍結することが必要な場合があります。
Time ウィンドウには、タイムスケールをグローバルに設定できるプロパティがありますが、通常は、Time-timeScale プロパティを使用してスクリプトから値を設定する方が簡便に処理できます。
//C# script exampleusing UnityEngine;using System.Collections;public class ExampleScript : MonoBehaviour { void Pause() { Time.timeScale = 0; } void Resume() { Time.timeScale = 1; }}

追加リソース