forked from zxl/LaboratoryProtection
38 lines
976 B
C#
38 lines
976 B
C#
using Cysharp.Threading.Tasks;
|
|
using Cysharp.Threading.Tasks.Linq;
|
|
|
|
using PMaker.Await;
|
|
|
|
using System;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
|
|
using UniRx;
|
|
using UniRx.Toolkit;
|
|
|
|
using UnityEngine;
|
|
|
|
public class UITestLogic : AwaitBehaviour
|
|
{
|
|
public AwaitBehaviour[] logics;
|
|
public UIMultimodule multimodule;
|
|
|
|
private void Reset()
|
|
{
|
|
this.logics = GetComponentsInChildren<AwaitBehaviour>(true);
|
|
this.multimodule = GetComponentInChildren<UIMultimodule>(true);
|
|
}
|
|
|
|
public override async UniTask WaitAsync(CancellationToken cancellationToken = default)
|
|
{
|
|
multimodule.gameObject.SetActive(true);
|
|
var logics = this.logics.Select(_ => {
|
|
var func = new Func<CancellationToken, UniTask>(async token => {
|
|
await _.WaitAsync(token);
|
|
});
|
|
return func;
|
|
});
|
|
await multimodule.WaitAsync(logics.ToArray(), cancellationToken);
|
|
Debug.Log("Over!");
|
|
}
|
|
} |