6日目 - Unity④


時間

ゲームで時間を使いたいときはたくさんあります。

など


Unityでカウントするとなると一番に思いつくのはUpdate()で変数に+1し続けることだと思いますが、Update()は環境によってその実行間隔が変わるうえ、処理負荷によっても大きく変動します。

そこでUnityではUpdate()の実行間隔を取得する関数Time.deltaTimeを利用して時間を計測します。


GameManagerスクリプトに以下のコードを書きましょう。

		using UnityEngine.InputSystem;

		public class GameManager : MonoBehaviour
		{
		
			//経過時間を求めるコード
			float time; //経過時間time
		
			void Start()
	    {
			    time = 0; //ゲーム開始時にtimeを0で初期化
	    }
    
	    void Update()
			{
        time += Time.deltaTime; //前のUpdate()実行タイミングからの経過時間を足して累計時間を計算
        
        if(Keyboard.current.tKey.wasPressedThisFrame)
				{
						Debug.Log(time); //Tキーが押されたら現在の経過時間を表示
				}
	    }
    }

Tキーを押すと現在の経過時間を表示できます。


また、ゲーム開始時からの経過時間を取得する関数Time.timeもあります。