用鼠标拖动Unity 3D来移动对象时出现问题

时间:2019-01-10 18:15:40

标签: c# unity3d

我有一个向前移动的球,要使其左右移动(通过鼠标拖动),我想单击屏幕上的任意位置,而不是使用对象X轴值和鼠标初始X轴值之间的差

此脚本的问题是单击时,球快速移至“鼠标”位置,然后随鼠标移动而开始移动,因此它没有像我之前所说的那样使用差异。

private float distance;
Vector3 initialPosition;

if (Input.GetMouseButtonDown(0))
    {
        distance = Vector3.Distance(transform.position,Camera.main.ScreenToWorldPoint(Input.MousePosition));
        initialPosition = transform.position;
    }

    if(Input.GetMouseButton(0))
    {
        if (Input.GetAxis("Mouse X") != 0)
        {

               Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
               Vector3 rayPoint = ray.GetPoint(distance);
               Ball.MovePosition(new Vector3(rayPoint.x, transform.position.y, transform.position.z));

        }
    }

0 个答案:

没有答案