Exemplo n.º 1
0
 protected virtual void OnMouseUp(MouseButtonInput evt) => MouseUp?.Invoke(evt);
Exemplo n.º 2
0
    private void Update()
    {
        if (OnUpdate != null)
        {
            OnUpdate();
        }

        for (int i = 0; i < trackedUnityAxes.Count; i++)
        {
            trackedUnityAxes[i].value = Input.GetAxisRaw(trackedUnityAxes[i].Key);
        }

        for (int i = 0; i < trackedUnityButtons.Count; i++)
        {
            trackedUnityButtons[i].value = Input.GetButton(trackedUnityButtons[i].Key);
        }

        for (int i = 0; i < trackedUnityMouseButtons.Count; i++)
        {
            trackedUnityMouseButtons[i].value = Input.GetMouseButton(trackedUnityMouseButtons[i].Key);
        }

        float lerpModifier = AXIS_LERP_MODIFIER * Time.deltaTime;

        for (int i = 0; i < axesList.Count; i++)
        {
            Axis axis = axesList[i];

            axis.valueRaw = 0f;
            for (int j = axis.inputs.Count - 1; j >= 0; j--)
            {
                AxisInput input = axis.inputs[j];
                if (input.value != 0f)
                {
                    axis.valueRaw = input.value;
                    break;
                }
            }

            axis.value = Mathf.Lerp(axis.value, axis.valueRaw, lerpModifier);

            if (axis.valueRaw == 0f && axis.value != 0f)
            {
                if (Mathf.Abs(axis.value) < 0.025f)
                {
                    axis.value = 0f;
                }
            }
        }

        for (int i = 0; i < buttonsList.Count; i++)
        {
            Button button = buttonsList[i];

            bool isDown = false;
            for (int j = button.inputs.Count - 1; j >= 0; j--)
            {
                ButtonInput input = button.inputs[j];
                if (input.value)
                {
                    isDown = true;
                    break;
                }
            }

            if (isDown)
            {
                if (button.state == InputState.None || button.state == InputState.Released)
                {
                    button.state = InputState.Pressed;
                }
                else
                {
                    button.state = InputState.Held;
                }
            }
            else
            {
                if (button.state == InputState.Pressed || button.state == InputState.Held)
                {
                    button.state = InputState.Released;
                }
                else
                {
                    button.state = InputState.None;
                }
            }
        }

        for (int i = 0; i < mouseButtonsList.Count; i++)
        {
            MouseButton mouseButton = mouseButtonsList[i];

            bool isDown = false;
            for (int j = mouseButton.inputs.Count - 1; j >= 0; j--)
            {
                MouseButtonInput input = mouseButton.inputs[j];
                if (input.value)
                {
                    isDown = true;
                    break;
                }
            }

            if (isDown)
            {
                if (mouseButton.state == InputState.None || mouseButton.state == InputState.Released)
                {
                    mouseButton.state = InputState.Pressed;
                }
                else
                {
                    mouseButton.state = InputState.Held;
                }
            }
            else
            {
                if (mouseButton.state == InputState.Pressed || mouseButton.state == InputState.Held)
                {
                    mouseButton.state = InputState.Released;
                }
                else
                {
                    mouseButton.state = InputState.None;
                }
            }
        }

        for (int i = 0; i < keysList.Count; i++)
        {
            Key key = keysList[i];

            bool isDown = false;
            for (int j = key.inputs.Count - 1; j >= 0; j--)
            {
                KeyInput input = key.inputs[j];
                if (input.value)
                {
                    isDown = true;
                    break;
                }
            }

            if (isDown)
            {
                if (key.state == InputState.None || key.state == InputState.Released)
                {
                    key.state = InputState.Pressed;
                }
                else
                {
                    key.state = InputState.Held;
                }
            }
            else
            {
                if (key.state == InputState.Pressed || key.state == InputState.Held)
                {
                    key.state = InputState.Released;
                }
                else
                {
                    key.state = InputState.None;
                }
            }
        }
    }
Exemplo n.º 3
0
 protected virtual void OnMouseDown(MouseButtonInput evt) => MouseDown?.Invoke(evt);