72 lines
2.0 KiB
C#
72 lines
2.0 KiB
C#
#define USE_NEW_INPUT_SYSTEM
|
|
using UnityEngine;
|
|
using UnityEngine.InputSystem;
|
|
|
|
public class InputManager : MonoBehaviour {
|
|
private PlayerInputActions playerInputActions;
|
|
public static InputManager Instance { get; private set; }
|
|
|
|
private void Awake() {
|
|
if (Instance is not null) {
|
|
Debug.LogError($"There is more than one InputManager! {transform} - {Instance}");
|
|
Destroy(gameObject);
|
|
return;
|
|
}
|
|
|
|
Instance = this;
|
|
playerInputActions = new();
|
|
playerInputActions.Player.Enable();
|
|
}
|
|
|
|
public Vector2 GetMouseScreenPosition() {
|
|
#if USE_NEW_INPUT_SYSTEM
|
|
return Mouse.current.position.ReadValue();
|
|
#else
|
|
return Input.mousePosition;
|
|
#endif
|
|
}
|
|
|
|
public bool IsMouseButtonDownThisFrame() {
|
|
#if USE_NEW_INPUT_SYSTEM
|
|
return playerInputActions.Player.Click.WasPressedThisFrame();
|
|
#else
|
|
return Input.GetMouseButtonDown(0);
|
|
#endif
|
|
}
|
|
|
|
public Vector2 GetCameraMoveVector() {
|
|
#if USE_NEW_INPUT_SYSTEM
|
|
return playerInputActions.Player.CameraMovement.ReadValue<Vector2>();
|
|
#else
|
|
Vector2 inputMoveDir = new();
|
|
if (Input.GetKey(KeyCode.W)) inputMoveDir.y = +1f;
|
|
if (Input.GetKey(KeyCode.S)) inputMoveDir.y = -1f;
|
|
if (Input.GetKey(KeyCode.A)) inputMoveDir.x = -1f;
|
|
if (Input.GetKey(KeyCode.D)) inputMoveDir.x = +1f;
|
|
return inputMoveDir;
|
|
#endif
|
|
}
|
|
|
|
public float GetCameraRotateAmount() {
|
|
#if USE_NEW_INPUT_SYSTEM
|
|
return playerInputActions.Player.CameraRotate.ReadValue<float>();
|
|
#else
|
|
float rotateAmount = 0f;
|
|
if (Input.GetKey(KeyCode.Q)) rotateAmount = +1f;
|
|
if (Input.GetKey(KeyCode.E)) rotateAmount = -1f;
|
|
return rotateAmount;
|
|
#endif
|
|
}
|
|
|
|
public float GetCameraZoomAmount() {
|
|
#if USE_NEW_INPUT_SYSTEM
|
|
return playerInputActions.Player.CameraZoom.ReadValue<float>();
|
|
#else
|
|
return Input.mouseScrollDelta.y switch {
|
|
> 0 => -1f,
|
|
< 0 => +1f,
|
|
_ => 0f
|
|
};
|
|
#endif
|
|
}
|
|
} |