private void SetTriggerState(Gaze_TriggerState state, bool forceNotify = false) { if (forceNotify || !GetTriggerState().Equals(state)) { // update trigger status index triggerStateIndex = (int)state; // notify manager Gaze_EventManager.FireTriggerStateEvent(new Gaze_TriggerStateEventArgs(gameObject, state)); } }
private void onTriggerStateEvent(Gaze_TriggerStateEventArgs e) { // if sender is the this Behaviour gameObject if ((GameObject)e.Sender == gameObject) { triggerState = e.TriggerState; switch (triggerState) { case Gaze_TriggerState.BEFORE: if (isDelayed) { HandleActionsInTime(() => OnBefore(), TriggerEventsAndStates.OnBefore); } else { OnBefore(); } break; case Gaze_TriggerState.ACTIVE: if (isDelayed) { HandleActionsInTime(() => OnActive(), TriggerEventsAndStates.OnActive); } else { OnActive(); } break; case Gaze_TriggerState.AFTER: if (isDelayed) { HandleActionsInTime(() => OnAfter(), TriggerEventsAndStates.OnAfter); } else { OnAfter(); } break; } } }
/// <summary> /// Initializes a new instance of the <see cref="Gaze_TriggerStateEventArgs"/> class. /// <param name="_sender">the sender of the event.</param> /// <param name="_triggerState">the current State of the sender.</param> public Gaze_TriggerStateEventArgs(object _sender, Gaze_TriggerState _triggerState) { Sender = _sender; TriggerState = _triggerState; }