说说思路实现
Unity中获取 鼠标插值的原理是
用上一帧鼠标的位置 减去这一帧的鼠标位置的值,然后要进行对第一次进行判断,判断这一次位置是不是原来的值,如果不是就进行差 运算,得出偏移量。再把上一次的位置的值给这个一次;
private Vector2 offest;
private Vector2 newMousePos;//上一帧
Vector2 oldMousePos = Vector2.zero;//这一帧
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
newMousePos = Input.mousePosition;
if (oldMousePos != Vector2.zero)
{
offest = newMousePos - oldMousePos;
}
oldMousePos = newMousePos;
}
}
第二种是直接 调用Input 类里封装好的 Axis 这样就可以获取 水平上的值 和垂直方向上的值
targetAngles.y += Input.GetAxis("Mouse X") * mouseSettings.pointerSensitivity;
targetAngles.x -= Input.GetAxis("Mouse Y") * mouseSettings.pointerSensitivity;
mouseSettings 是定义mouse相关的结构体,mouseButtonID,敏感度。滚动敏感度。
[Serializable]
public struct MouseSettings
{
/// <summary>
/// ID of mouse button.
/// </summary>
public int mouseButtonID;/// <summary>
/// Sensitivity of mouse pointer.
/// </summary>
public float pointerSensitivity;/// <summary>
/// Sensitivity of mouse ScrollWheel.
/// </summary>
public float wheelSensitivity;/// <summary>
/// Constructor.
/// </summary>
/// <param name="mouseButtonID">ID of mouse button.</param>
/// <param name="pointerSensitivity">Sensitivity of mouse pointer.</param>
/// <param name="wheelSensitivity">Sensitivity of mouse ScrollWheel.</param>
public MouseSettings(int mouseButtonID, float pointerSensitivity, float wheelSensitivity)
{
this.mouseButtonID = mouseButtonID;
this.pointerSensitivity = pointerSensitivity;
this.wheelSensitivity = wheelSensitivity;
}
}
这些值 在 做 滑动 的时候很有用