// Run ActionAxis internal static void RunActionAxis() { foreach (ActionData aData in ActionDB) { if (aData.type == EActionType.KeyCode) { continue; } foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { EAxisState axisState = aAxis.getAxisState; if (aData.axisPositiveEvents.useDown && axisState == EAxisState.PositiveDown) { aData.axisPositiveEvents.downHandler.Invoke(); break; } if (aData.axisPositiveEvents.usePress && axisState == EAxisState.PositivePress) { aData.axisPositiveEvents.pressHandler.Invoke(); break; } if (aData.axisPositiveEvents.useUp && axisState == EAxisState.PositiveUp) { aData.axisPositiveEvents.upHandler.Invoke(); break; } if (aData.axisNegativeEvents.useDown && axisState == EAxisState.NegativeDown) { aData.axisNegativeEvents.downHandler.Invoke(); break; } if (aData.axisNegativeEvents.usePress && axisState == EAxisState.NegativePress) { aData.axisNegativeEvents.pressHandler.Invoke(); break; } if (aData.axisNegativeEvents.useUp && axisState == EAxisState.NegativeUp) { aData.axisNegativeEvents.upHandler.Invoke(); break; } } } }
// Get ActionAxis internal static bool GetActionAxis(string m_Name, EAxisState m_State) { foreach (ActionData aData in ActionDB) { if (aData.name == m_Name) { if (aData.type != EActionType.KeyCode) { foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { if (aAxis.getAxisState == m_State) { return(true); } } } return(false); } } Debug.LogError("ActionAxis " + m_Name + " Not Found!"); return(false); }
// Get Action internal static bool GetAction(string m_Name, EActionEvent m_Event) { foreach (ActionData aData in ActionDB) { if (aData.name == m_Name) { switch (m_Event) { case EActionEvent.Down: if (aData.type == EActionType.KeyCode || aData.type == EActionType.Mixed) { foreach (KeyCode key in aData.keys) { if (Input.GetKeyDown(key)) { return(true); } } } if (aData.type == EActionType.Axis || aData.type == EActionType.Mixed) { foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { EAxisState axisState = aAxis.getAxisState; if (axisState == EAxisState.NegativeDown || axisState == EAxisState.PositiveDown) { return(true); } } } break; case EActionEvent.Press: if (aData.type == EActionType.KeyCode || aData.type == EActionType.Mixed) { foreach (KeyCode key in aData.keys) { if (Input.GetKey(key)) { return(true); } } } if (aData.type == EActionType.Axis || aData.type == EActionType.Mixed) { foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { EAxisState axisState = aAxis.getAxisState; if (axisState == EAxisState.NegativePress || axisState == EAxisState.PositivePress) { return(true); } } } break; case EActionEvent.Up: if (aData.type == EActionType.KeyCode || aData.type == EActionType.Mixed) { foreach (KeyCode key in aData.keys) { if (Input.GetKeyUp(key)) { return(true); } } } if (aData.type == EActionType.Axis || aData.type == EActionType.Mixed) { foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { EAxisState axisState = aAxis.getAxisState; if (axisState == EAxisState.NegativeUp || axisState == EAxisState.PositiveUp) { return(true); } } } break; } return(false); } } Debug.LogError("Action " + m_Name + " Not Found!"); return(false); }
// Run Actions internal static void RunActions() { foreach (ActionData aData in ActionDB) { if (aData.actionEvents.useDown) { if (aData.type == EActionType.KeyCode || aData.type == EActionType.Mixed) { foreach (KeyCode key in aData.keys) { if (Input.GetKeyDown(key)) { aData.actionEvents.downHandler.Invoke(); break; } } } if (aData.type == EActionType.Axis || aData.type == EActionType.Mixed) { foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { EAxisState axisState = aAxis.getAxisState; if (axisState == EAxisState.NegativeDown || axisState == EAxisState.PositiveDown) { aData.actionEvents.downHandler.Invoke(); break; } } } } if (aData.actionEvents.usePress) { if (aData.type == EActionType.KeyCode || aData.type == EActionType.Mixed) { foreach (KeyCode key in aData.keys) { if (Input.GetKeyDown(key)) { aData.actionEvents.pressHandler.Invoke(); break; } } } if (aData.type == EActionType.Axis || aData.type == EActionType.Mixed) { foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { EAxisState axisState = aAxis.getAxisState; if (axisState == EAxisState.NegativeDown || axisState == EAxisState.PositiveDown) { aData.actionEvents.pressHandler.Invoke(); break; } } } } if (aData.actionEvents.useUp) { if (aData.type == EActionType.KeyCode || aData.type == EActionType.Mixed) { foreach (KeyCode key in aData.keys) { if (Input.GetKeyDown(key)) { aData.actionEvents.upHandler.Invoke(); break; } } } if (aData.type == EActionType.Axis || aData.type == EActionType.Mixed) { foreach (ActionData.ActionAxis aAxis in aData.actionAxes) { EAxisState axisState = aAxis.getAxisState; if (axisState == EAxisState.NegativeDown || axisState == EAxisState.PositiveDown) { aData.actionEvents.upHandler.Invoke(); break; } } } } // } }
// Unbind ActionAxis internal static void UnbindActionAxis(string m_Name, EAxisState m_State, ActionHandler m_Handler) { foreach (ActionData aData in ActionDB) { if (aData.name == m_Name) { switch (m_State) { case EAxisState.PositiveDown: if (aData.axisPositiveEvents.downHandler == m_Handler) { aData.axisPositiveEvents.downHandler -= m_Handler; aData.axisPositiveEvents.useDown = (aData.axisPositiveEvents.downHandler != null); } break; case EAxisState.PositivePress: if (aData.axisPositiveEvents.pressHandler == m_Handler) { aData.axisPositiveEvents.pressHandler -= m_Handler; aData.axisPositiveEvents.usePress = (aData.axisPositiveEvents.pressHandler != null); } break; case EAxisState.PositiveUp: if (aData.axisPositiveEvents.upHandler == m_Handler) { aData.axisPositiveEvents.upHandler -= m_Handler; aData.axisPositiveEvents.useUp = (aData.axisPositiveEvents.upHandler != null); } break; case EAxisState.NegativeDown: if (aData.axisNegativeEvents.downHandler == m_Handler) { aData.axisNegativeEvents.downHandler -= m_Handler; aData.axisNegativeEvents.useDown = (aData.axisNegativeEvents.downHandler != null); } break; case EAxisState.NegativePress: if (aData.axisNegativeEvents.pressHandler == m_Handler) { aData.axisNegativeEvents.pressHandler -= m_Handler; aData.axisNegativeEvents.usePress = (aData.axisNegativeEvents.pressHandler != null); } break; case EAxisState.NegativeUp: if (aData.axisNegativeEvents.upHandler == m_Handler) { aData.axisNegativeEvents.upHandler -= m_Handler; aData.axisNegativeEvents.useUp = (aData.axisNegativeEvents.upHandler != null); } break; } return; } } // Debug.LogError("Action " + m_Name + " Not Found."); }
// Get ActionAxis public static bool GetActionAxis(string m_Name, EAxisState m_State) { return(InputSettings.GetActionAxis(m_Name, m_State)); }
// Unbind ActionAxis public static void UnbindActionAxis(string m_Name, EAxisState m_State, ActionHandler m_Handler) { InputSettings.UnbindActionAxis(m_Name, m_State, m_Handler); }