예제 #1
0
        private async UniTaskVoid WaitForAsync(
            IReadOnlyAsyncReactiveProperty <int> asyncReadOnlyReactiveProperty,
            CancellationToken token)
        {
            // Valueプロパティで現在値を取得可能
            var current = asyncReadOnlyReactiveProperty.Value;

            Debug.Log($"Current:{current}");

            // 現在の値をスキップして、次の値に更新されるまで待つ
            var next = await asyncReadOnlyReactiveProperty.WaitAsync(token);

            Debug.Log($"Next:{next}");

            // IUniTaskAsyncEnumerable<T>として扱える
            // (LINQと組み合わせ可能)
            var result = await asyncReadOnlyReactiveProperty
                         // 負数になるまで待つ
                         .FirstOrDefaultAsync(x => x < 0, cancellationToken : token);

            Debug.Log($"LINQ:{result}");
        }