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の基本的な使い方です。
基本的なコードを作っておけば、いくらでも使いまわせるね。ありがと!
お名前