鼠标点击坐标

想用鼠标点击控制镜头和角色移动,坐标一直有问题

原来点击后有好几种坐标,如下:

public class CameraController : MonoBehaviour
{
    public Vector3 CameraPosition;

    Camera _this;

    void Start()
    {
        _this = gameObject.GetComponent<Camera>();
        CameraPosition = _this.transform.position;
    }

    void Update()
    {
        getMousePos();
    }

    void getMousePos()
    {
        Vector3 mousePos = Input.mousePosition;

        bool mouseInside = (mousePos.x >= 0) &&
                               (mousePos.x < Screen.width) &&
                               (mousePos.y >= 0) &&
                               (mousePos.y < Screen.height);

        Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);

        if (Input.GetMouseButtonDown(0) && mouseInside)
        {
            //print("Input.mousePosition: " + Input.mousePosition);
            //print("Input.mousePosition world to viewport: " + Camera.main.WorldToViewportPoint(Input.mousePosition));
            //print("Input.mousePosition world to screen: " + Camera.main.WorldToScreenPoint(Input.mousePosition));
            //print("Input.mousePosition Viewport To Screen: " + Camera.main.ViewportToScreenPoint(Input.mousePosition));
            //print("Input.mousePosition Viewport To World: " + Camera.main.ViewportToWorldPoint(Input.mousePosition));
            //print("Input.mousePosition Screen To Viewport " + Camera.main.ScreenToViewportPoint(Input.mousePosition));
            print("Input.mousePosition Screen To World: " + worldPos);
            
            // 移动窗口视角
             moveCamera(mousePos);
        }

    }

    void moveCamera(Vector3 mousePos)
    {
        mousePos.z = -1;
        _this.transform.position = mousePos;

    }
}

使用鼠标控制移动

这个脚本还有大问题,主角有时候无法停止,点击的终点不太精准。

第三版,鼠标点击精准了,又有个新问题,撞到障碍物的时候就会转起来,之后看书解决了,把刚体的z轴固定就不会转了。

撞到障碍物就转起来了

最后更新于