5秒後にオブジェクトを破壊する
3秒後にオブジェクトを生成する
などの処理をUnityで行う。
- Invoke
- Time.deltaTime
ここでは「Invoke」と「Time.deltaTime」を使って、指定した時間が経過したときに処理を行うスクリプト例をお伝えする。
目次
【Unity】指定した時間が経過したときに処理を行う2つの方法【Invoke・Time.deltaTime】
現在の状況
- Cubeにスクリプトがついている
Invoke
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TimeController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Invoke("Hoge", 3);
}
void Hoge()
{
Debug.Log("3秒後に実行された");
}
}
Invoke("メソッド名", ○秒);
| ○秒後にメソッドを実行 |
「Invoke」を利用することで指定した時間が経過したあとに、指定したメソッドを実行できる。
このスクリプトを実行すると3秒後にコンソールに「3秒後に実行された」と表示される。
Time.deltaTime
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TimeController : MonoBehaviour
{
float seconds;
void Update()
{
seconds += Time.deltaTime;
if (seconds >= 2)
{
seconds = 0;
Debug.Log("2秒後に実行された");
}
}
}
Time.deltaTime
| 最後のフレームからの経過時間 |
「Time.deltaTime」を使うことでも、○秒後に指定した処理を実行することが可能だ。
2秒感覚でコンソールに「2秒後に実行された」と表示される。
おわりに
「Invoke」と「Time.deltaTime」の詳細な使い方は他の記事にまとめる。
以上、指定した時間が経過したときに処理を行う2つの方法だ。
このようなチュートリアルを販売しているので、Unityでゲームを作成している人は購入していただきたい。
コメント