public virtual void Freeze() { if (freezeCount == 0) { frozenActGroup = new ActGroup(); } freezeCount++; }
public ActGroup Pop() { if (actGroups.Count == 0) { return(null); } ActGroup result = actGroups[0]; actGroups.RemoveAt(0); return(result); }
void Update() { if (curActGroup == null && !actQueue.Empty) { lock (actQueue) { curActGroup = actQueue.Pop(); curActGroup.Init(); } } if (curActGroup != null) { curActGroup.Perform(Time.deltaTime); if (curActGroup.Finished) { curActGroup = null; } } }
public virtual void Thaw() { if (freezeCount == 0) { return; } freezeCount--; if (freezeCount > 0) { return; } lock (actQueue) { actQueue.Add(frozenActGroup); } frozenActGroup = null; }
public void Add(ActGroup actGroup) { actGroups.Add(actGroup); }