protected virtual void OnMouseUp(MouseButtonInput evt) => MouseUp?.Invoke(evt);
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; } } } }
protected virtual void OnMouseDown(MouseButtonInput evt) => MouseDown?.Invoke(evt);