63 lines
1.6 KiB
C#
63 lines
1.6 KiB
C#
using UnityEngine;
|
|
using UnityEngine.InputSystem;
|
|
|
|
public class InputHandler : MonoBehaviour
|
|
{
|
|
private Vector2 lookDelta;
|
|
private float zoomDelta;
|
|
private Vector2 mousePosition;
|
|
private bool isRightMouseHeld;
|
|
private bool isMiddleMouseHeld;
|
|
private bool isLeftMouseHeld;
|
|
private bool isAltHeld;
|
|
private bool wasOrbitActiveLastFrame;
|
|
|
|
public void OnLook(InputValue value)
|
|
{
|
|
lookDelta = value.Get<Vector2>();
|
|
}
|
|
|
|
public void OnZoom(InputValue value)
|
|
{
|
|
zoomDelta = value.Get<float>();
|
|
}
|
|
|
|
public void OnMousePosition(InputValue value)
|
|
{
|
|
mousePosition = value.Get<Vector2>();
|
|
}
|
|
|
|
public void OnRightMouse(InputValue value)
|
|
{
|
|
isRightMouseHeld = value.isPressed;
|
|
}
|
|
|
|
public void OnMiddleMouse(InputValue value)
|
|
{
|
|
isMiddleMouseHeld = value.isPressed;
|
|
}
|
|
|
|
public void OnLeftMouse(InputValue value)
|
|
{
|
|
isLeftMouseHeld = value.isPressed;
|
|
}
|
|
|
|
public void OnAlt(InputValue value)
|
|
{
|
|
isAltHeld = value.isPressed;
|
|
}
|
|
|
|
public Vector2 GetLookDelta() => lookDelta;
|
|
public float GetZoomDelta() => zoomDelta;
|
|
public Vector2 GetMousePosition() => mousePosition;
|
|
public bool IsRightMouseHeld() => isRightMouseHeld;
|
|
public bool IsMiddleMouseHeld() => isMiddleMouseHeld;
|
|
public bool IsOrbitActive() => isAltHeld && isLeftMouseHeld;
|
|
public bool IsOrbitStarting()
|
|
{
|
|
bool isOrbitActive = IsOrbitActive();
|
|
bool isStarting = isOrbitActive && !wasOrbitActiveLastFrame;
|
|
wasOrbitActiveLastFrame = isOrbitActive;
|
|
return isStarting;
|
|
}
|
|
} |