示例#1
0
 public static void AddAnimator(IMeshAnimator animator)
 {
     if (Instance)
     {
         _addAnimators.Add(animator);
     }
 }
示例#2
0
        private void UpdateTick(float time)
        {
            if (_addAnimators.Count > 0)
            {
                _animators.AddRange(_addAnimators);
                _addAnimators.Clear();
            }

            if (_removeAnimators.Count > 0)
            {
                for (int i = 0; i < _removeAnimators.Count; i++)
                {
                    IMeshAnimator remove = _removeAnimators[i];
                    _animators.Remove(remove);
                }
                _removeAnimators.Clear();
            }

            int count = _animators.Count;

            for (int i = 0; i < count; i++)
            {
                IMeshAnimator animator = _animators[i];
                if (time >= animator.NextTick)
                {
                    try
                    {
                        animator.UpdateTick(time);
                    }
                    catch (System.Exception e)
                    {
                        Debug.LogException(e);
                    }
                }
            }
        }
示例#3
0
 public override void DisplayFrame(IMeshAnimator meshAnimator, int frame, int previousFrame)
 {
     DisplayFrame(meshAnimator.MeshFilter, frame, previousFrame);
 }
示例#4
0
 public abstract void DisplayFrame(IMeshAnimator meshAnimator, int frame, int previousFrame);
示例#5
0
 public static void RemoveAnimator(IMeshAnimator animator)
 {
     _removeAnimators.Add(animator);
 }
示例#6
0
 public override void DisplayFrame(IMeshAnimator meshAnimator, int frame, int previousFrame)
 {
 }