遅延処理について
Unityでの遅延処理の実装方法を調べると、Invoke、コルーチン、Task等がすぐに出てくるが、単純な遅延をシンプルに行いたい時や、テストのための遅延行いたい時に、ウェイト処理が有効な場合がある。
ウェイト処理
ウェイトタイマーを設定してTime.DeltaTimeを減算し、ウェイトタイマーが0未満になった場合に処理を行う。下記は1秒遅延する例。
呼び出し部
void update()
{
// ウェイト処理を呼び出す
if(isWait()) return;
// 遅延させたい関数
Debug.log("1秒遅延")
}
実装部
// ウェイト変数
float waitTimer = 0;
// ウェイト処理
bool isWait()
{
// ウェイトタイマーが0以上の時
if (0 < waitTimer)
{
// ウェイトタイマーを減らす
waitTimer -= Time.deltaTime;
// trueを返す
return true;
}
else
{
// ウェイトタイマーの設定(1秒)
waitTimer = 1f;
// falseを返す
return false;
}
}
コメント