「Unity/UniTask」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→サンプル) |
(→サンプル) |
||
行33: | 行33: | ||
} | } | ||
} | } | ||
+ | </pre> | ||
+ | |||
+ | ==条件を満たしたら先へ== | ||
+ | <pre> | ||
+ | async void Exec() | ||
+ | { | ||
+ | await UniTask.WaitUntil(() => transform.position.y < 0); | ||
+ | Debug.Log("ok"); | ||
+ | } | ||
</pre> | </pre> | ||
2021年7月13日 (火) 13:16時点における版
ダウンロード
https://github.com/Cysharp/UniTask/releases
Taskとの比較
UniTaskは、Taskより軽く、SynchronizationContextへの依存がない。
Taskサンプルはこちら
[Unity/Csharp/別スレッド] [ショートカット]
サンプル
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Threading.Tasks; // Taskサンプル用 // using UniRx.Async; // UniTask ver1 using Cysharp.Threading.Tasks; // UniTask ver2 public class SampleScene : MonoBehaviour { void Start() { Exec(); } async void Exec() { var result = await ExecUniTask(); Debug.Log("Exec " + result); // Exec Hello!! } async UniTask<string> ExecUniTask() { return await Task.Run(() => "Hello!!"); } }
条件を満たしたら先へ
async void Exec() { await UniTask.WaitUntil(() => transform.position.y < 0); Debug.Log("ok"); }
参考
UniTask使い方 https://qiita.com/toRisouP/items/4445b6b9bf00e49eb147
UniTask ver2 https://qiita.com/toRisouP/items/8f66fd952eaffeaf3107