Ejemplo n.º 1
0
        void AddAction(DebugAction action, DebugActionDesc desc)
        {
            int index = (int)action;

            m_DebugActions[index]      = desc;
            m_DebugActionStates[index] = new DebugActionState();
        }
Ejemplo n.º 2
0
        void UpdateAction(int actionIndex)
        {
            DebugActionDesc  desc  = m_DebugActions[actionIndex];
            DebugActionState state = m_DebugActionStates[actionIndex];

            if (state.runningAction)
            {
                state.Update(desc);
            }
        }
Ejemplo n.º 3
0
        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;
                    }
                }
            }
        }