private void FireOnStateExited(InteractionStateEnum state) { if (OnStateExited != null) { OnStateExited(state); } }
protected override void OnStateHandled(InteractionStateEnum state) { switch (state) { case InteractionStateEnum.DragBegin: FireOnButtonDragBegin(LastEventData); break; case InteractionStateEnum.Drag: FireOnButtonDrag(LastEventData); break; case InteractionStateEnum.DragEnd: FireOnButtonDragEnd(LastEventData); break; } base.OnStateHandled(state); }
private void ChangeStateTo(InteractionStateEnum state) { float stateEnterTime = CurState == null ? Time.realtimeSinceStartup : CurState.StateEnterTime; if (CurState != null) { CurState.ExitStateHandler(); } CurState = FindState(state); if (CurState == null) { Debug.LogWarning("CurState is null"); return; } CurState.EnterStateHandler(stateEnterTime); CurState.StateHandler(); }
protected virtual void OnStateHandled(InteractionStateEnum state) { switch (state) { case InteractionStateEnum.DoubleTap: FireOnButtonDoubleTap(LastEventData); break; case InteractionStateEnum.Tap: FireOnButtonTap(LastEventData); break; case InteractionStateEnum.Press: FireOnButtonPress(LastEventData); break; case InteractionStateEnum.PressDown: FireOnButtonPressDown(LastEventData); break; case InteractionStateEnum.TapAndHoldPressUp: case InteractionStateEnum.PressUp: if (_isExitedWhilePressed) { _isExitedWhilePressed = false; FireOnInputLeftButton(LastEventData); break; } FireOnButtonPressUp(LastEventData); break; case InteractionStateEnum.TapAndHold: FireOnTapAndHold(LastEventData); break; } }
protected virtual void OnStateHandled(InteractionStateEnum state) { switch (state) { case InteractionStateEnum.DoubleTap: FireOnButtonDoubleTap(LastEventData); break; case InteractionStateEnum.Tap: FireOnButtonTap(LastEventData); break; case InteractionStateEnum.Press: FireOnButtonPress(LastEventData); break; case InteractionStateEnum.PressDown: FireOnButtonPressDown(LastEventData); break; case InteractionStateEnum.TapAndHoldPressUp: case InteractionStateEnum.PressUp: GameObject targetObjectOnPointer = MMStandaloneInputModule.CurrentInput.GameObjectUnderPointer(); if (targetObjectOnPointer == null || (targetObjectOnPointer != this && !targetObjectOnPointer.transform.IsChildOf(transform))) { FireOnInputLeftButton(LastEventData); break; } FireOnButtonPressUp(LastEventData); break; case InteractionStateEnum.TapAndHold: FireOnTapAndHold(LastEventData); break; } }
private Transition FindTransition(InteractionStateEnum state, CommandEnum command) { return(StateTransitions.Find(tr => tr.CurState == state && tr.Command == command)); }
private StateBase FindState(InteractionStateEnum state) { return(States.Find(s => s.StateEnum == state)); }
protected virtual void OnStateExited(InteractionStateEnum state) { }
public StateDatum(InteractionStateEnum state) { this.InteractionState = state; this.Name = state.ToString(); }
public Transition(InteractionStateEnum curState, CommandEnum command, InteractionStateEnum outcomeState) { CurState = curState; Command = command; OutcomeState = outcomeState; }