CapersProject/Assets/02.Scripts/Utility/Utils.cs
2024-11-07 18:13:54 +09:00

58 lines
1.6 KiB
C#

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<T>(List<T> list, T item)
{
if (list.Contains(item))
{
Debug.Log($"{item}은 이미 {list}안에 등록되어 있습니다.");
return;
}
list.Add(item);
}
public static void UnregisterList<T>(List<T> list, T item)
{
if (!list.Contains(item))
{
Debug.Log($"{item}은 {list}안에 없습니다.");
return;
}
list.Remove(item);
}
}
}