Unity UniTaskによる処理の待機
Unityで何秒か待ってから処理をさせたいものがあるんだけど、いい方法ない?

Unityでは、処理の待機をするための方法としてコルーチンという関数がありますが、それよりも株式会社CySharpが提供しているオープンソースライブラリの「UniTask」というものが使いやすいですよ。

「UniTask」を使用するためには、まず、githubからダウンロード・インストールする必要があります。

インストールには、UnityのPackage Managerからインストールすることができます。

URLを入力するだけでできるやつだね。

そうです✨早速やってみましょう。

まず、「Window」→「Package Maneger」から、Package Maneger画面を表示します。


左上の「+」ボタンから「Add package from git URL」を選択します。

URLを表示する欄が表示されますので、以下のURLを入力して、「Add」をクリックします。

【UniTaskインストールURL】
https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask
Package Maneger画面に以下のようにUniTaskが表示されましたら、インストールは完了です✨

それでは、次にUniTaskの基本的なコードを書いてみます。以下のは、5秒間まってから、コンソールに「成功」と表示されるサンプルコードです。

using System.Collections; using System.Collections.Generic; using UnityEngine; using System; //UniTask使用のため追加 using Cysharp.Threading.Tasks; //UniTask使用のため追加 public class UniTask001 : MonoBehaviour { //待機時間を変数へ格納 float waitTime001 = 5f; async void Start() { //待機時間後にコンソール出力 await UniTask.Delay(TimeSpan.FromSeconds(waitTime001)); Debug.Log("成功"); } }
実行するために空のオブジェクトを作成し、そこに作成したスクリプトをアタッチします。

再生ボタン「▶」で実行して、5秒後にコンソールに「成功」と表示されます。
以上がUniTaskの基本的な使い方です。

基本的なコードを作っておけば、いくらでも使いまわせるね。ありがと!

お名前