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();
        }
Beispiel #2
0
        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();
        }