ウェイトタイマーによる遅延の実装

Unity

遅延処理について

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;
    }
}

コメント

タイトルとURLをコピーしました