public static void AddAnimator(IMeshAnimator animator) { if (Instance) { _addAnimators.Add(animator); } }
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); } } } }
public override void DisplayFrame(IMeshAnimator meshAnimator, int frame, int previousFrame) { DisplayFrame(meshAnimator.MeshFilter, frame, previousFrame); }
public abstract void DisplayFrame(IMeshAnimator meshAnimator, int frame, int previousFrame);
public static void RemoveAnimator(IMeshAnimator animator) { _removeAnimators.Add(animator); }
public override void DisplayFrame(IMeshAnimator meshAnimator, int frame, int previousFrame) { }