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

34 lines
878 B
C#

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);
}
}
}