void AddAction(DebugAction action, DebugActionDesc desc) { int index = (int)action; m_DebugActions[index] = desc; m_DebugActionStates[index] = new DebugActionState(); }
void UpdateAction(int actionIndex) { DebugActionDesc desc = m_DebugActions[actionIndex]; DebugActionState state = m_DebugActionStates[actionIndex]; if (state.runningAction) { state.Update(desc); } }
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; } } } }