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

2021年8月13日金曜日

UniRx Unity

t f B! P L

やりたいこと

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

やりかた

ClassA側
        public UniTask FuncAsync => _uniTaskCompletionSource.Task;
        private readonly UniTaskCompletionSource _uniTaskCompletionSource = new UniTaskCompletionSource();

        public void Func(PlayerId id)
        {
            // 何らかの処理
            
            // 終了したことを通知
            _uniTaskCompletionSource.TrySetResult();
        }

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

            // 何らかの処理
        }

Translate

このブログを検索

  • ()
  • ()
もっと見る

QooQ