46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using ActionCustom;
|
|
|
|
namespace UnrealM
|
|
{
|
|
public class ActionNodeInterval : ActionNode
|
|
{
|
|
private static readonly ObjectPool<ActionNodeInterval> opNodeInterval = new ObjectPool<ActionNodeInterval>(64);
|
|
|
|
private float interval;
|
|
#if UNITY_EDITOR
|
|
public static void GetObjectPoolInfo(out int countActive, out int countAll)
|
|
{
|
|
countActive = opNodeInterval.countActive;
|
|
countAll = opNodeInterval.countAll;
|
|
}
|
|
#endif
|
|
|
|
//从池中获取实例并初始化运行时间
|
|
internal static ActionNodeInterval Get(float interval)
|
|
{
|
|
return opNodeInterval.Get().SetInterval(interval);
|
|
}
|
|
|
|
private ActionNodeInterval SetInterval(float interval)
|
|
{
|
|
this.interval = interval;
|
|
return this;
|
|
}
|
|
|
|
internal override bool Update(ActionSequence actionSequence)
|
|
{
|
|
if (actionSequence.timeAxis > interval)
|
|
{
|
|
actionSequence.UpdateTimeAxis(interval);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
internal override void Release()
|
|
{
|
|
opNodeInterval.Release(this);
|
|
}
|
|
}
|
|
} |