58 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
} |