public SingleSequenceBehaviour() { Behaviours = new LinkedList <SingleBehaviourTimeCallback>(); OnCompletedCallback = null; Current = null; MaxDuration = 0; TimeElappsed = 0; }
public void ConsumeChild() { if (Current == null && Behaviours.Count > 0) { Current = Behaviours.ElementAt(0); Behaviours.RemoveFirst(); TimeElappsed = Current.StartTime; } }
public void Append(SingleBehaviourTimeCallback callback, float duration, bool playImmediate = false) { // 以当前最大结束时间作为开始时间点 callback.SetStartTime(MaxDuration, duration); callback.Single = this; Behaviours.AddLast(callback); MaxDuration += duration; if (playImmediate) { ConsumeChild(); } }
public void Stop() { Current = null; Behaviours.Clear(); }
public void Next() { Current = null; ConsumeChild(); }