UniTaskで他の処理が終わるのを待つ

2021年8月13日金曜日

UniRx Unity

t f B! P L

やりたいこと

ClassAが処理Aをする
ClassBは処理Bの途中でClassAの処理Aが終わるまで待機する

やりかた

ClassA側
  1. public UniTask FuncAsync => _uniTaskCompletionSource.Task;
  2. private readonly UniTaskCompletionSource _uniTaskCompletionSource = new UniTaskCompletionSource();
  3.  
  4. public void Func(PlayerId id)
  5. {
  6. // 何らかの処理
  7. // 終了したことを通知
  8. _uniTaskCompletionSource.TrySetResult();
  9. }

ClassB側
  1. private async UniTaskVoid SetUpAsync()
  2. {
  3. // クラスAを取得
  4. var classA = GetComponent();
  5. // 何らかの処理
  6. // クラスAのFunc処理が終わるまで待つ
  7. await classA.FuncAsync;
  8. // 何らかの処理
  9. }

Translate

このブログを検索

  • ()
  • ()
もっと見る

QooQ