游戏开发者联盟

unity获取鼠标点击地面坐标

前提条件:

只能点击带有collider的物体。一般人物角色、怪物、地表都有collider,都是可以点击的。如果代码运行没有效果,首先检查collider。

代码

    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            //从摄像机发出到点击坐标的射线
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                //划出射线,只能在场景视图中才能看到
                Debug.DrawLine(ray.origin, hit.point);
                //hit.point就是鼠标点到的坐标,不一定是点到地面,也可能是点到人
                //或者别的带有collider的物体。
                //TODO
            }
        }
    }