public void UpdateTrigger(InputHelpers.Button button, AsimState state, TriggerAction action) { var(controller, ray) = GetCurrent(); switch (state) { case AsimState.Down: if (GetTriggerDown(button)) { action?.Invoke(controller, ray); } break; case AsimState.Hold: if (GetTrigger(button)) { action?.Invoke(controller, ray); } break; case AsimState.Up: if (GetTriggerUp(button)) { action?.Invoke(controller, ray); } break; } }
/// <summary> /// Check if the given trigger is in a given state. /// </summary> /// <param name="button">Target button.</param> /// <param name="state">Target state.</param> /// <returns>Is the trigger in the given state.</returns> public bool IsActive(InputHelpers.Button button, AsimState state) { if (!m_triggerStates.ContainsKey(button)) { m_triggerStates.Add(button, new FakeState()); } return(m_triggerStates[button].GetState(state, IsPressed(button))); }
public void UpdateTrigger(InputHelpers.Button button, AsimState state, TriggerAction action) { foreach (var controller in m_controllers) { if (controller.IsActive(button, state)) { action.Invoke(controller.Controller, controller.Ray); } } }
public bool GetState(AsimState state, bool down) { switch (state) { case AsimState.Down: return(GetInputDown(down)); case AsimState.Hold: return(GetInput(down)); case AsimState.Up: return(GetInputUp(down)); default: return(false); } }