void AddAction(DebugAction action, DebugActionDesc desc) { int index = (int)action; m_DebugActions[index] = desc; m_DebugActionStates[index] = new DebugActionState(); }
void RegisterActions() { m_DebugActions = new DebugActionDesc[(int)DebugAction.DebugActionCount]; m_DebugActionStates = new DebugActionState[(int)DebugAction.DebugActionCount]; var enableDebugMenu = new DebugActionDesc(); enableDebugMenu.buttonTriggerList.Add(new[] { kEnableDebugBtn1, kEnableDebugBtn2 }); enableDebugMenu.keyTriggerList.Add(new[] { KeyCode.LeftControl, KeyCode.Backspace }); enableDebugMenu.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.EnableDebugMenu, enableDebugMenu); var resetDebugMenu = new DebugActionDesc(); resetDebugMenu.buttonTriggerList.Add(new[] { kResetBtn, kEnableDebugBtn2 }); resetDebugMenu.keyTriggerList.Add(new[] { KeyCode.LeftAlt, KeyCode.Backspace }); resetDebugMenu.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.ResetAll, resetDebugMenu); var nextDebugPanel = new DebugActionDesc(); nextDebugPanel.buttonTriggerList.Add(new[] { kDebugNextBtn }); nextDebugPanel.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.NextDebugPanel, nextDebugPanel); var previousDebugPanel = new DebugActionDesc(); previousDebugPanel.buttonTriggerList.Add(new[] { kDebugPreviousBtn }); previousDebugPanel.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.PreviousDebugPanel, previousDebugPanel); var validate = new DebugActionDesc(); validate.buttonTriggerList.Add(new[] { kValidateBtn }); validate.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.Action, validate); var persistent = new DebugActionDesc(); persistent.buttonTriggerList.Add(new[] { kPersistentBtn }); persistent.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.MakePersistent, persistent); var multiplier = new DebugActionDesc(); multiplier.buttonTriggerList.Add(new[] { kMultiplierBtn }); multiplier.repeatMode = DebugActionRepeatMode.Delay; validate.repeatDelay = 0f; AddAction(DebugAction.Multiplier, multiplier); AddAction(DebugAction.MoveVertical, new DebugActionDesc { axisTrigger = kDPadVertical, repeatMode = DebugActionRepeatMode.Delay, repeatDelay = 0.16f }); AddAction(DebugAction.MoveHorizontal, new DebugActionDesc { axisTrigger = kDPadHorizontal, repeatMode = DebugActionRepeatMode.Delay, repeatDelay = 0.16f }); }
void UpdateAction(int actionIndex) { DebugActionDesc desc = m_DebugActions[actionIndex]; DebugActionState state = m_DebugActionStates[actionIndex]; if (state.runningAction) { state.Update(desc); } }
DebugActionManager() { m_Valid = Debugging.CheckRequiredInputButtonMapping(m_RequiredInputButtons); m_DebugActions = new DebugActionDesc[(int)DebugAction.DebugActionCount]; m_DebugActionStates = new DebugActionState[(int)DebugAction.DebugActionCount]; DebugActionDesc enableDebugMenu = new DebugActionDesc(); enableDebugMenu.buttonTriggerList.Add(new[] { kEnableDebugBtn1, kEnableDebugBtn2 }); enableDebugMenu.keyTriggerList.Add(new[] { KeyCode.LeftControl, KeyCode.Backspace }); enableDebugMenu.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.EnableDebugMenu, enableDebugMenu); DebugActionDesc nextDebugMenu = new DebugActionDesc(); nextDebugMenu.buttonTriggerList.Add(new[] { kDebugNextBtn }); nextDebugMenu.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.NextDebugMenu, nextDebugMenu); DebugActionDesc previousDebugMenu = new DebugActionDesc(); previousDebugMenu.buttonTriggerList.Add(new[] { kDebugPreviousBtn }); previousDebugMenu.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.PreviousDebugMenu, previousDebugMenu); DebugActionDesc validate = new DebugActionDesc(); validate.buttonTriggerList.Add(new[] { kValidateBtn }); validate.repeatMode = DebugActionRepeatMode.Delay; validate.repeatDelay = 0.25f; AddAction(DebugAction.Validate, validate); DebugActionDesc persistent = new DebugActionDesc(); persistent.buttonTriggerList.Add(new[] { kPersistentBtn }); persistent.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.Persistent, persistent); AddAction(DebugAction.MoveVertical, new DebugActionDesc { axisTrigger = kDPadVertical, repeatMode = DebugActionRepeatMode.Delay, repeatDelay = 0.2f }); AddAction(DebugAction.MoveHorizontal, new DebugActionDesc { axisTrigger = kDPadHorizontal, repeatMode = DebugActionRepeatMode.Delay, repeatDelay = 0.2f }); }
void RegisterActions() { m_DebugActions = new DebugActionDesc[(int)DebugAction.DebugActionCount]; m_DebugActionStates = new DebugActionState[(int)DebugAction.DebugActionCount]; DebugActionDesc enableDebugMenu = new DebugActionDesc(); enableDebugMenu.buttonTriggerList.Add(new[] { kEnableDebugBtn1, kEnableDebugBtn2 }); enableDebugMenu.keyTriggerList.Add(new[] { KeyCode.LeftControl, KeyCode.Backspace }); enableDebugMenu.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.EnableDebugMenu, enableDebugMenu); DebugActionDesc nextDebugPanel = new DebugActionDesc(); nextDebugPanel.buttonTriggerList.Add(new[] { kDebugNextBtn }); nextDebugPanel.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.NextDebugPanel, nextDebugPanel); DebugActionDesc previousDebugPanel = new DebugActionDesc(); previousDebugPanel.buttonTriggerList.Add(new[] { kDebugPreviousBtn }); previousDebugPanel.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.PreviousDebugPanel, previousDebugPanel); DebugActionDesc validate = new DebugActionDesc(); validate.buttonTriggerList.Add(new[] { kValidateBtn }); validate.repeatMode = DebugActionRepeatMode.Delay; validate.repeatDelay = 0.25f; AddAction(DebugAction.Validate, validate); DebugActionDesc persistent = new DebugActionDesc(); persistent.buttonTriggerList.Add(new[] { kPersistentBtn }); persistent.repeatMode = DebugActionRepeatMode.Never; AddAction(DebugAction.MakePersistent, persistent); AddAction(DebugAction.MoveVertical, new DebugActionDesc { axisTrigger = kDPadVertical, repeatMode = DebugActionRepeatMode.Delay, repeatDelay = 0.4f }); AddAction(DebugAction.MoveHorizontal, new DebugActionDesc { axisTrigger = kDPadHorizontal, repeatMode = DebugActionRepeatMode.Delay, repeatDelay = 0.4f }); }
public void Update(DebugActionDesc desc) { // Always reset this so that the action can only be caught once until repeat/reset m_ActionState = 0.0f; if (m_TriggerPressedUp != null) { m_Timer += Time.deltaTime; for (int i = 0; i < m_TriggerPressedUp.Length; ++i) { if (m_Type == DebugActionKeyType.Button) { m_TriggerPressedUp[i] |= Input.GetButtonUp(m_PressedButtons[i]); } else if (m_Type == DebugActionKeyType.Axis) { m_TriggerPressedUp[i] |= (Input.GetAxis(m_PressedAxis) == 0.0f); } else { m_TriggerPressedUp[i] |= Input.GetKeyUp(m_PressedKeys[i]); } } bool allTriggerUp = true; foreach (bool value in m_TriggerPressedUp) { allTriggerUp &= value; } if (allTriggerUp || (m_Timer > desc.repeatDelay && desc.repeatMode == DebugActionRepeatMode.Delay)) { Reset(); } } }
void SampleAction(int actionIndex) { DebugActionDesc desc = m_DebugActions[actionIndex]; DebugActionState state = m_DebugActionStates[actionIndex]; //bool canSampleAction = (state.actionTriggered == false) || (desc.repeatMode == DebugActionRepeatMode.Delay && state.timer > desc.repeatDelay); if (state.runningAction == false) { // Check button triggers for (int buttonListIndex = 0; buttonListIndex < desc.buttonTriggerList.Count; ++buttonListIndex) { string[] buttons = desc.buttonTriggerList[buttonListIndex]; bool allButtonPressed = true; foreach (string button in buttons) { allButtonPressed = allButtonPressed && Input.GetButton(button); if (!allButtonPressed) { break; } } if (allButtonPressed) { state.TriggerWithButton(buttons, 1.0f); break; } } // Check axis triggers if (desc.axisTrigger != "") { float axisValue = Input.GetAxis(desc.axisTrigger); if (axisValue != 0.0f) { state.TriggerWithAxis(desc.axisTrigger, axisValue); } } // Check key triggers for (int keyListIndex = 0; keyListIndex < desc.keyTriggerList.Count; ++keyListIndex) { KeyCode[] keys = desc.keyTriggerList[keyListIndex]; bool allKeyPressed = true; foreach (KeyCode key in keys) { allKeyPressed = allKeyPressed && Input.GetKey(key); if (!allKeyPressed) { break; } } if (allKeyPressed) { state.TriggerWithKey(keys, 1.0f); break; } } } }