【Unity】UniTask の復習
UniTaskの概要
非同期処理を行う Task を Unity に最適化したもの。
AsyncOperation(LoadAsync等) や DOTween なんかが、await できるようになる。
下記の記事がとてもわかりやすいので忘れたら読む。
await と Task
await はただ処理待ちするだけ。
Task は非同期処理を行う。
await Task~ と続けるのは、非同期処理が終わるまで待つ、という意味。
async と Task
「async Task メソッド名()」
async は非同期処理ですよ、と明示する修飾子。await を使うためのもの。
Task は非同期処理中の状態を示す戻り値。
async void…と続けると、戻り値がないので「await メソッド()」ができない。
ちなみに Task.Run (() => アクション) は、public static Task Run (Action action)。
UniTaskの補足
UniTaskでDOTweenを使えるんですけども、初心者には使用方法がちょっとわかりにくい。
Scripting Define Symbols ってなんじゃらほい。
OpenUPMからDOTweenを導入する、またはScripting Define Symbolsに
「UNITASK_DOTWEEN_SUPPORT」を定義する
Edit → ProjectSettings → PlayerSetting のタブ一番左の OtherSettings にある。
(Icon、Resolution、Splash の次)
ちなみにOdinを使ってる場合はこんな感じの表記
UniTaskのネスト
下記はUIイメージにアタッチしたスクリプト。
ボタンを押すと、このイメージをDOTweenで右方向へ1秒、左方向へ1秒動かします。
なお、移動完了するまでボタンを押しても無視されます。
あとホントはasync系はメソッド名の最後に Async とつけるのがマナーらしい。