MRが楽しい

MRやVRについて学習したことを書き残す

UniTaskのDelayを使って指定時間待機させる

本日は UniTask の小ネタ枠です。
UniTaskのDelayを使って指定時間待機させるについてです。

UniTask

UniTaskの環境構築手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

UniTask.Delay

UniTask.Delay 関数を利用すると指定の時間、処理を待機することができます。
また、TimeSpan クラスを利用してミリ秒、秒、分、時間、日数などを引数に指定できます。
以下のサンプルスクリプトを作成しました。
・DelayTest.cs

using System;
using Cysharp.Threading.Tasks;
using UnityEngine;

public class DelayTest : MonoBehaviour
{
    async void Start()
    {
        Debug.Log($"再生からの経過時間:{Time.time:0.00}秒");

        // 1秒待機
        await UniTask.Delay(TimeSpan.FromSeconds(1));
        
        Debug.Log($"再生からの経過時間:{Time.time:0.00}秒");
        
        // 500ミリ秒待機
        await UniTask.Delay(TimeSpan.FromMilliseconds(500));
                
        Debug.Log($"再生からの経過時間:{Time.time:0.00}秒");
    }
}


動作確認

サンプルスクリプトを設定したシーンを再生して動作を確認します。
以下の通り、指定した秒数の待機が簡単に実装できました。