93 lines
2.5 KiB
C#
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;
|
|
}
|
|
}
|