using Cysharp.Threading.Tasks; using Cysharp.Threading.Tasks.Triggers; using PMaker.UI; using System.Threading; using UnityEngine; namespace PMaker.Await { public static class GameObjectExtension { public static async UniTask WaitClick(this GameObject go, CancellationToken cancellationToken = default) { await go.GetAsyncPointerClickTrigger() .OnPointerClickAsync(cancellationToken); } public static async UniTask WaitClick(this GameObject go, CancellationToken cancellationToken = default, params string[] childsName) { var root = go.transform; foreach (var item in childsName) { root = root.transform.Find(item); } await root.GetAsyncPointerClickTrigger() .OnPointerClickAsync(cancellationToken); } } }