forked from zxl/LaboratoryProtection
57 lines
1.6 KiB
C#
57 lines
1.6 KiB
C#
using Cysharp.Threading.Tasks;
|
|
|
|
using PMaker.UI;
|
|
|
|
using System.Threading;
|
|
|
|
using UnityEditor;
|
|
|
|
namespace PMaker.Await
|
|
{
|
|
public static class PageExtension
|
|
{
|
|
public static async UniTask WaitUI(this Page page, string name, CancellationToken cancellationToken = default)
|
|
{
|
|
var ui = page.transform.Find(name).GetComponent<AwaitBehaviour>();
|
|
await ui.WaitAsync(cancellationToken);
|
|
}
|
|
|
|
public static async UniTask WaitAllUI(this Page page, string name, CancellationToken cancellationToken = default)
|
|
{
|
|
var ui = page.transform.Find(name).GetComponents<AwaitBehaviour>();
|
|
foreach (var item in ui)
|
|
{
|
|
await item.WaitAsync(cancellationToken);
|
|
}
|
|
}
|
|
|
|
public static T GetUI<T>(this Page page, string name)
|
|
{
|
|
return page.transform.Find(name).GetComponent<T>();
|
|
}
|
|
|
|
public static T[] GetUIs<T>(this Page page)
|
|
{
|
|
return page.GetComponentsInChildren<T>(true);
|
|
}
|
|
|
|
public static void ShowUI(this Page page, string name)
|
|
{
|
|
var ui = page.transform.Find(name).gameObject;
|
|
ui.SetActive(true);
|
|
}
|
|
|
|
public static void HideUI(this Page page, string name)
|
|
{
|
|
var ui = page.transform.Find(name).gameObject;
|
|
ui.SetActive(false);
|
|
}
|
|
|
|
public static void ShowOrHide(this Page page, string name)
|
|
{
|
|
var ui = page.transform.Find(name).gameObject;
|
|
ui.SetActive(!ui.activeSelf);
|
|
}
|
|
}
|
|
}
|