You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.4 KiB
40 lines
1.4 KiB
using System.Collections.Generic;
|
|
using System;
|
|
using UnityEngine;
|
|
|
|
internal static class YieldInstructionCache
|
|
{
|
|
class FloatComparer : IEqualityComparer<float>
|
|
{
|
|
bool IEqualityComparer<float>.Equals(float x, float y)
|
|
{
|
|
return x == y;
|
|
}
|
|
int IEqualityComparer<float>.GetHashCode(float obj)
|
|
{
|
|
return obj.GetHashCode();
|
|
}
|
|
}
|
|
|
|
public static readonly WaitForEndOfFrame WaitForEndOfFrame = new WaitForEndOfFrame();
|
|
public static readonly WaitForFixedUpdate WaitForFixedUpdate = new WaitForFixedUpdate();
|
|
private static readonly Dictionary<float, WaitForSeconds> _timeInterval = new Dictionary<float, WaitForSeconds>(new FloatComparer());
|
|
private static readonly Dictionary<Func<bool>, WaitUntil> _waitUntil = new Dictionary<Func<bool>, WaitUntil>(); // DG
|
|
|
|
public static WaitForSeconds WaitForSeconds(float seconds)
|
|
{
|
|
WaitForSeconds wfs;
|
|
if (!_timeInterval.TryGetValue(seconds, out wfs))
|
|
_timeInterval.Add(seconds, wfs = new WaitForSeconds(seconds));
|
|
return wfs;
|
|
}
|
|
|
|
// DG(20.05.08): parameter 없는 람다식 WaitUntil.
|
|
public static WaitUntil WaitUntil(Func<bool> func)
|
|
{
|
|
WaitUntil wu;
|
|
if (!_waitUntil.TryGetValue(func, out wu))
|
|
_waitUntil.Add(func, wu = new WaitUntil(func));
|
|
return wu;
|
|
}
|
|
}
|