Beispiel #1
0
        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
            });
        }
Beispiel #3
0
        void UpdateAction(int actionIndex)
        {
            DebugActionDesc  desc  = m_DebugActions[actionIndex];
            DebugActionState state = m_DebugActionStates[actionIndex];

            if (state.runningAction)
            {
                state.Update(desc);
            }
        }
Beispiel #4
0
        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
            });
        }
Beispiel #5
0
        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
            });
        }
Beispiel #6
0
            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();
                    }
                }
            }
Beispiel #7
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;
                    }
                }
            }
        }