BITKit/Packages/Runtime~/Unity/Scripts/UX/Waiting/WaitingScreen.cs

34 lines
878 B
C#
Raw Normal View History

2023-06-05 19:57:17 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cysharp.Threading.Tasks;
using UnityEngine.UIElements;
namespace BITKit
{
public class WaitingScreen : MonoBehaviour
{
static ValidHandle isWaiting = new();
public static void Excute(object obj)
{
isWaiting.AddElement(obj);
}
public static void Complete(object obj)
{
isWaiting.RemoveElement(obj);
}
[Header(Constant.Header.Components)]
public UIDocument document;
void Start()
{
isWaiting = new();
isWaiting.AddListener(SetWaiting);
isWaiting.Invoke();
}
async void SetWaiting(bool wait)
{
await UniTask.SwitchToMainThread();
document.rootVisualElement.SetActive(wait);
}
}
}