Files
ZHGD_Web/Assets/Script/Tool/MouseInputTool.cs
2025-07-13 23:16:20 +08:00

93 lines
2.5 KiB
C#

using UnityEngine;
public class MouseInputTool : Singleton<MouseInputTool>
{
private float mouseLX;
/// <summary>
/// 鼠标左键X轴变化量
/// </summary>
public float MouseLX
{
get { return mouseLX; }
}
private float mouseLY;
/// <summary>
/// 鼠标左键Y轴变化量
/// </summary>
public float MouseLY
{
get { return mouseLY; }
}
private float mouseRX;
/// <summary>
/// 鼠标右键X轴变化量
/// </summary>
public float MouseRX
{
get { return mouseRX; }
}
private float mouseRY;
/// <summary>
/// 鼠标右键Y轴变化量
/// </summary>
public float MouseRY
{
get { return mouseRY; }
}
private float mouseCX;
/// <summary>
/// 鼠标中键X轴变化量
/// </summary>
public float MouseCX
{
get { return mouseCX; }
}
private float mouseCY;
/// <summary>
/// 鼠标中键Y轴变化量
/// </summary>
public float MouseCY
{
get { return mouseCY; }
}
private float mouseCWheel;
/// <summary>
/// 鼠标中键滚动变化量
/// </summary>
public float MouseCWheel
{
get { return mouseCWheel; }
}
void Update()
{
// 获取鼠标变量
if (Input.GetMouseButton(0))
{
mouseLX += Input.GetAxis("Mouse X");
mouseLY += Input.GetAxis("Mouse Y");
}
if (Input.GetMouseButton(1))
{
mouseRX += Input.GetAxis("Mouse X");
mouseRY += Input.GetAxis("Mouse Y");
}
if (Input.GetMouseButton(2))
{
mouseCX += Input.GetAxis("Mouse X");
mouseCY += Input.GetAxis("Mouse Y");
}
mouseCWheel += Input.GetAxis("Mouse ScrollWheel");
// 计算鼠标变量衰减
mouseLX = Mathf.Abs(mouseLX) > 0.1f ? Mathf.Lerp(mouseLX, 0, Time.deltaTime) : 0;
mouseLY = Mathf.Abs(mouseLY) > 0.1f ? Mathf.Lerp(mouseLY, 0, Time.deltaTime) : 0;
mouseRX = Mathf.Abs(mouseRX) > 0.1f ? Mathf.Lerp(mouseRX, 0, Time.deltaTime) : 0;
mouseRY = Mathf.Abs(mouseRY) > 0.1f ? Mathf.Lerp(mouseRY, 0, Time.deltaTime) : 0;
mouseCX = Mathf.Abs(mouseCX) > 0.1f ? Mathf.Lerp(mouseCX, 0, Time.deltaTime) : 0;
mouseCY = Mathf.Abs(mouseCY) > 0.1f ? Mathf.Lerp(mouseCY, 0, Time.deltaTime) : 0;
mouseCWheel = Mathf.Abs(mouseCWheel) > 0.001f ? Mathf.Lerp(mouseCWheel, 0, Time.deltaTime) : 0;
}
}