using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace BlueWater.Utility { public static class Utils { public static IEnumerator CoolDownCoroutine(float waitTime, Action onCooldownComplete = null) { yield return new WaitForSeconds(waitTime); onCooldownComplete?.Invoke(); } public static void StartUniqueCoroutine(MonoBehaviour owner, ref Coroutine coroutineField, IEnumerator coroutineMethod) { if (coroutineField != null) { owner.StopCoroutine(coroutineField); coroutineField = null; } coroutineField = owner.StartCoroutine(coroutineMethod); } public static void EndUniqueCoroutine(MonoBehaviour owner, ref Coroutine coroutineField) { if (coroutineField != null) { owner.StopCoroutine(coroutineField); coroutineField = null; } } public static void RegisterList(List list, T item) { if (list.Contains(item)) { Debug.Log($"{item}은 이미 {list}안에 등록되어 있습니다."); return; } list.Add(item); } public static void UnregisterList(List list, T item) { if (!list.Contains(item)) { Debug.Log($"{item}은 {list}안에 없습니다."); return; } list.Remove(item); } } }