「Unity/UniTask」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→サンプル) |
|||
行10: | 行10: | ||
==サンプル== | ==サンプル== | ||
+ | <pre> | ||
+ | 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 result2 = await ExecUniTask(); | ||
+ | Debug.Log("Exec " + result2); // Exec Hello!! | ||
+ | } | ||
+ | async UniTask<string> ExecUniTask() | ||
+ | { | ||
+ | return await Task.Run(() => "Hello!!"); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
==参考== | ==参考== |
2021年7月13日 (火) 12:55時点における版
ダウンロード
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 result2 = await ExecUniTask(); Debug.Log("Exec " + result2); // Exec Hello!! } async UniTask<string> ExecUniTask() { return await Task.Run(() => "Hello!!"); } }
参考
UniTask使い方 https://qiita.com/toRisouP/items/4445b6b9bf00e49eb147
UniTask ver2 https://qiita.com/toRisouP/items/8f66fd952eaffeaf3107