public IEnumerator Execute() { mAllNodeCount = TimelineQueue.Count; if (OnTimelineBeganCallback != null) { OnTimelineBeganCallback(); } while (TimelineQueue.Count > 0) { TimelinePair nodePair = TimelineQueue.Dequeue(); while (mCurTime < nodePair.Time) { mCurTime += Time.deltaTime; yield return(0); } CoroutineBehaviour.StartCoroutine(ExecuteNode(nodePair.Node)); } while (mExecutedNodeCount != mAllNodeCount) { //Debug.Log (mExecutedNodeCount + ":" + mAllNodeCount); yield return(0); } if (OnTimelineEndedCallback != null) { OnTimelineEndedCallback(); } }
protected override void OnExecute(float dt) { mCurTime += dt; mCurTimelinePair = TimeLinePairList[mCurPairIndex]; if (mCurTime >= mCurTimelinePair.Time && !mCurTimelinePair.Node.Finished) { if (mCurTimelinePair.Node.Execute(dt)) { mCurPairIndex++; Finished = TimeLinePairList.Count == mCurPairIndex; } } }
protected override void OnDispose() { foreach (var timelinePair in TimeLinePairList) { timelinePair.Node.Dispose(); } if (mCurTimelinePair != null) { mCurTimelinePair.Node.Dispose(); mCurTimelinePair.Node = null; } mCurTimelinePair = null; TimeLinePairList.Clear(); TimeLinePairList = null; }
public void Append(TimelinePair pair) { TimelineQueue.Enqueue(pair); }
public void Append(TimelinePair pair) { TimeLinePairList.Add(pair); }