public virtual void TriggerEvents(float minTime, float maxTime) { if (animationEvent == null) { return; } var events = AnimationClip.events; // does this create garbage? var delta = maxTime - minTime; minTime = Wrap(minTime, AnimationClip); maxTime = Wrap(maxTime, AnimationClip); for (int i = 0; i < events.Length; i++) { var t = events[i].time; // In Between if (t > minTime && t < maxTime) { animationEvent.TriggerEvent(events[i].stringParameter); continue; } if (t < maxTime && t > maxTime - delta) { animationEvent.TriggerEvent(events[i].stringParameter); continue; } if (t > minTime && t < minTime + delta) { animationEvent.TriggerEvent(events[i].stringParameter); continue; } } }