在Unity中,“Mouse X”和“Mouse Y”返回什么?

3
我写了以下更新:
void Update () {

        if( Input.GetMouseButton(0) )
        {

            if( !dragging )
            {
                dragging = true;

                xDragStart = Input.GetAxis("Mouse X");
                yDragStart = Input.GetAxis("Mouse Y");
            }


            xDrag = Input.GetAxis("Mouse X");
            yDrag = Input.GetAxis("Mouse Y");

            DragValuesText.text = "x = " + xDrag + ", y = " + yDrag;
        }
        else
        {
            if( dragging )
            {
                dragging = false;
            }
        }


    }

我创建了一个“文本”UI来显示“DragValuesText”,并发现在拖动时返回的值很小,停止鼠标后变为零。看起来它们返回的是增量。但是我怎么确定呢?在文档中,我没有看到明确说明它是增量。它说它可以是增量,但如何知道或更改这个事实-没有说明。
1个回答

3
进入编辑 -> 项目设置 -> 输入,检查鼠标X / 鼠标Y轴的设置。
默认情况下,Type应为“鼠标移动”,这意味着它是“鼠标增量”。

对于任何类型的按钮,请使用键/鼠标按钮,对于鼠标增量和滚轮,请使用鼠标移动,对于模拟游戏手柄轴,请使用游戏手柄轴,对于用户晃动窗口时,请使用窗口移动。

https://docs.unity3d.com/Manual/class-InputManager.html


2
那么配置绝对值是不可能的吗?这些增量使用的单位是什么? - Dims
我不确定实际的单位是什么。如果你想知道像素的绝对变化,我猜你可以在鼠标按下时存储Input.mousePosition并在每一帧检查差异。 - Fredrik Widerberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接