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

> The configurable relationship between in-game time and real time and the potential effects.

[Time.timeScale](/engine/6000.0/script-reference/unity-engine/time/time-scale.md) プロパティは、ゲーム世界でのリアルタイムに対する相対的な時間の経過率を定義します。`Time.timeScale` 値が 1.0 の場合は、ゲーム内時間がリアルタイムと一致することを表します。値を 2.0 にすると、ゲーム内の時間が現実世界の 2 倍速くなり、ゲーム内のアクションが速くなります。値を 0.5 にすると、ゲームプレイは半分のスピードに減速します。値を 0 にすると、ゲーム内時間が完全に停止します。

`Time.timeScale` は実際には実行を遅くしませんが、代わりに [Time.deltaTime](/engine/6000.0/script-reference/unity-engine/time/delta-time.md) と [Time.fixedDeltaTime](/engine/6000.0/script-reference/unity-engine/time/fixed-delta-time.md) で `Update` 関数と `FixedUpdate` 関数に報告される時間ステップを変更します。

`Update` 機能は、タイムスケールを縮小した場合にも同じ高頻度で呼び出される可能性がありますが、各フレームの `Time.deltaTime` の値は小さくなります。他のスクリプト関数はタイムスケールの影響を受けないため、例えばゲームが一時停止しているときに通常のインタラクションで GUI を表示できます。

スローモーションなどの特殊な時間効果では、ゲーム時間の経過を遅くして、コード内のアニメーションや時間ベースの計算を低速で行うようにすると有効な場合があります。さらに、ゲームの一時停止時のように、ゲーム時間を完全に凍結することが必要な場合があります。

[Time](/engine/6000.0/manual/unity-editor/editor-features/comp-manager-group/class-time-manager.md) ウィンドウには、タイムスケールをグローバルに設定できるプロパティがありますが、通常は、[Time-timeScale](/engine/6000.0/script-reference/unity-engine/time/time-scale.md) プロパティを使用してスクリプトから値を設定する方が簡便に処理できます。

```
//C# script example
using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour {
	void Pause() {
		Time.timeScale = 0;
	}
	
	void Resume() {
		Time.timeScale = 1;
	}
}
```

## 追加リソース##additional-resources

* [フレームごとの更新](/engine/6000.0/manual/scripting/object-oriented-development/managing-time-and-frame-rate/time-per-frame-updates.md)
* [キャプチャフレームレート](/engine/6000.0/manual/scripting/object-oriented-development/managing-time-and-frame-rate/time-capture-frame-rate.md)
