private void FixedUpdate()
        {
            if (playerControl.isOnPlaying)
            {
                InitStates();
            }
            else if (playerControl.isOnStopping)
            {
                ResetStates();
            }

            if (!playerControl.isPlaying)
            {
                return;
            }

            var currentTime = playerControl.relativeTime;

            while (_eventIndex < _events.Length)
            {
                var ev = _events[_eventIndex];

                if (currentTime >= ev.absTime)
                {
                    EventEmitted?.Invoke(this, new ScenarioSignalEventArgs(ev, _variation));
                    _eventIndex += 1;
                }
                else
                {
                    break;
                }
            }
        }
 private void OnEventEmitted(SchedulerEvent payload)
 {
     EventEmitted?.Invoke(this, new SchedulerEventArgs(payload));
 }