Unity获取 鼠标 插值的 几种 方法

版权声明:转载 请说明 出处 https://blog.csdn.net/qq2512667/article/details/86574433

说说思路实现

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;
    }
}

  

 这些值 在  做 滑动 的时候很有用

猜你喜欢

转载自blog.csdn.net/qq2512667/article/details/86574433
今日推荐