using UnityEngine; using Cysharp.Threading.Tasks; using System; public static class UniTaskExtension { public static void DelayFrame(this GameObject go, Action action) { DelayFrameInternal(1, action); } public static void DelayFrame(this Component cmp, Action action) { DelayFrameInternal(1, action); } private async static UniTask DelayFrameInternal(int frame, Action action) { await UniTask.DelayFrame(frame); action?.Invoke(); } public static void DelayFrames(this Component cmp, int frames, Action action) { DelayFrameInternal(frames, action); } public static void DelayFrames(this GameObject go, int frames, Action action) { DelayFrameInternal(frames, action); } }