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
            });
        }
Exemplo n.º 3
0
        public void Update(DebugActionDesc desc)
        {
            // Always reset this so that the action can only be caught once until repeat/reset
            actionState = 0f;

            if (m_TriggerPressedUp != null)
            {
                m_Timer += Time.deltaTime;

                for (int i = 0; i < m_TriggerPressedUp.Length; ++i)
                {
#if USE_INPUT_SYSTEM
                    if (inputAction != null)
                    {
                        m_TriggerPressedUp[i] |= Mathf.Approximately(inputAction.ReadValue <float>(), 0f);
                    }
#else
                    if (m_Type == DebugActionKeyType.Button)
                    {
                        m_TriggerPressedUp[i] |= Input.GetButtonUp(m_PressedButtons[i]);
                    }
                    else if (m_Type == DebugActionKeyType.Axis)
                    {
                        m_TriggerPressedUp[i] |= Mathf.Approximately(Input.GetAxis(m_PressedAxis), 0f);
                    }
                    else
                    {
                        m_TriggerPressedUp[i] |= Input.GetKeyUp(m_PressedKeys[i]);
                    }
#endif
                }

                bool allTriggerUp = true;
                foreach (bool value in m_TriggerPressedUp)
                {
                    allTriggerUp &= value;
                }

                if (allTriggerUp || (m_Timer > desc.repeatDelay && desc.repeatMode == DebugActionRepeatMode.Delay))
                {
                    Reset();
                }
            }
        }
Exemplo n.º 4
0
        void RegisterActions()
        {
            m_DebugActions      = new DebugActionDesc[(int)DebugAction.DebugActionCount];
            m_DebugActionStates = new DebugActionState[(int)DebugAction.DebugActionCount];

            var enableDebugMenu = new DebugActionDesc();

#if USE_INPUT_SYSTEM
            enableDebugMenu.buttonAction = debugActionMap.FindAction(kEnableDebug);
#else
            enableDebugMenu.buttonTriggerList.Add(new[] { kEnableDebugBtn1, kEnableDebugBtn2 });
            enableDebugMenu.keyTriggerList.Add(new[] { KeyCode.LeftControl, KeyCode.Backspace });
#endif
            enableDebugMenu.repeatMode = DebugActionRepeatMode.Never;
            AddAction(DebugAction.EnableDebugMenu, enableDebugMenu);

            var resetDebugMenu = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            resetDebugMenu.buttonAction = debugActionMap.FindAction(kResetBtn);
#else
            resetDebugMenu.keyTriggerList.Add(new[] { KeyCode.LeftAlt, KeyCode.Backspace });
            resetDebugMenu.buttonTriggerList.Add(new[] { kResetBtn, kEnableDebugBtn2 });
#endif
            resetDebugMenu.repeatMode = DebugActionRepeatMode.Never;
            AddAction(DebugAction.ResetAll, resetDebugMenu);

            var nextDebugPanel = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            nextDebugPanel.buttonAction = debugActionMap.FindAction(kDebugNextBtn);
#else
            nextDebugPanel.buttonTriggerList.Add(new[] { kDebugNextBtn });
#endif
            nextDebugPanel.repeatMode = DebugActionRepeatMode.Never;
            AddAction(DebugAction.NextDebugPanel, nextDebugPanel);

            var previousDebugPanel = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            previousDebugPanel.buttonAction = debugActionMap.FindAction(kDebugPreviousBtn);
#else
            previousDebugPanel.buttonTriggerList.Add(new[] { kDebugPreviousBtn });
#endif
            previousDebugPanel.repeatMode = DebugActionRepeatMode.Never;
            AddAction(DebugAction.PreviousDebugPanel, previousDebugPanel);

            var validate = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            validate.buttonAction = debugActionMap.FindAction(kValidateBtn);
#else
            validate.buttonTriggerList.Add(new[] { kValidateBtn });
#endif
            validate.repeatMode = DebugActionRepeatMode.Never;
            AddAction(DebugAction.Action, validate);

            var persistent = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            persistent.buttonAction = debugActionMap.FindAction(kPersistentBtn);
#else
            persistent.buttonTriggerList.Add(new[] { kPersistentBtn });
#endif
            persistent.repeatMode = DebugActionRepeatMode.Never;
            AddAction(DebugAction.MakePersistent, persistent);

            var multiplier = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            multiplier.buttonAction = debugActionMap.FindAction(kMultiplierBtn);
#else
            multiplier.buttonTriggerList.Add(new[] { kMultiplierBtn });
#endif
            multiplier.repeatMode = DebugActionRepeatMode.Delay;
            validate.repeatDelay  = 0f;

            AddAction(DebugAction.Multiplier, multiplier);

            var moveVertical = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            moveVertical.buttonAction = debugActionMap.FindAction(kDPadVertical);
#else
            moveVertical.axisTrigger = kDPadVertical;
#endif
            moveVertical.repeatMode  = DebugActionRepeatMode.Delay;
            moveVertical.repeatDelay = 0.16f;
            AddAction(DebugAction.MoveVertical, moveVertical);

            var moveHorizontal = new DebugActionDesc();
#if USE_INPUT_SYSTEM
            moveHorizontal.buttonAction = debugActionMap.FindAction(kDPadHorizontal);
#else
            moveHorizontal.axisTrigger = kDPadHorizontal;
#endif
            moveHorizontal.repeatMode  = DebugActionRepeatMode.Delay;
            moveHorizontal.repeatDelay = 0.16f;
            AddAction(DebugAction.MoveHorizontal, moveHorizontal);

#if USE_INPUT_SYSTEM
            foreach (var action in debugActionMap)
            {
                action.Enable();
            }
#endif
        }