private void SortNewProcessingClips(float sequenceTime) { var orderedNewProcessingClips = newProcessingClips.OrderBy(processingClip => processingClip.StartTime); foreach (var clipData in orderedNewProcessingClips) { if (AnimationClipData.IsClipNotRunning(sequenceTime, clipData)) { notRunningClips.Add(clipData); } else if (!AnimationClipData.IsClipNotRunning(sequenceTime, clipData) && notRunningClips.Contains(clipData)) { notRunningClips.Remove(clipData); } if (AnimationClipData.IsClipRunning(sequenceTime, clipData)) { runningClips.Add(clipData); PlayClip(clipData, clipData.RunningLayer, sequenceTime); } else if (!AnimationClipData.IsClipRunning(sequenceTime, clipData) && runningClips.Contains(clipData)) { runningClips.Remove(clipData); } if (AnimationClipData.IsClipFinished(sequenceTime, clipData)) { finishedClips.Add(clipData); } else if (!AnimationClipData.IsClipFinished(sequenceTime, clipData) && finishedClips.Contains(clipData)) { finishedClips.Remove(clipData); } } newProcessingClips.Clear(); }
private void SortNewProcessingClips(float sequenceTime) { IOrderedEnumerable <AnimationClipData> orderedEnumerable = from processingClip in this.newProcessingClips orderby processingClip.StartTime select processingClip; foreach (AnimationClipData current in orderedEnumerable) { if (AnimationClipData.IsClipNotRunning(sequenceTime, current)) { this.notRunningClips.Add(current); } else if (!AnimationClipData.IsClipNotRunning(sequenceTime, current) && this.notRunningClips.Contains(current)) { this.notRunningClips.Remove(current); } if (AnimationClipData.IsClipRunning(sequenceTime, current)) { this.runningClips.Add(current); this.PlayClip(current, current.RunningLayer, sequenceTime); } else if (!AnimationClipData.IsClipRunning(sequenceTime, current) && this.runningClips.Contains(current)) { this.runningClips.Remove(current); } if (AnimationClipData.IsClipFinished(sequenceTime, current)) { this.finishedClips.Add(current); } else if (!AnimationClipData.IsClipFinished(sequenceTime, current) && this.finishedClips.Contains(current)) { this.finishedClips.Remove(current); } } this.newProcessingClips.Clear(); }