//定义一条从主相机射向鼠标位置的一条射向
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//判断射线是否发生碰撞
if (Physics.Raycast(ray, out hit, 100))
{
//判断碰撞物体是否为floor
if(hit.collider.gameObject.name=="floor")
{
//打印出碰撞点的坐标
Debug.Log(hit.point);
}
}
}
}
将代码添加到我们的相机物体上,运行游戏,鼠标在我们创建的地面上点击,控制台就会输出点击点的坐标,
通过上面的简单的例子,我们就可以得到目的点的坐标,具体做法:当我们点击鼠标时,从我们的摄像机朝我们鼠标的方向发射一条射线,当射线与地面发生碰撞时,输出碰撞点的坐标,这个坐标就是鼠标点击到地面的点的坐标,也就是目标点坐标。
坐标点已经找到了,下面一部就是要让我们的游戏物体看向这个坐标点,
有一种简单的方法就是直接让我们的主角lookat这个坐标点。
下面我们新建一个游戏对象,作为我们的主角并修改名称为“person”;
补充脚本如下:
private GameObject play;
void Start ()
{
play=GameObject.Find("person");
}
// Use this for initialization
void Update ()
{
if(Input.GetMouseButtonDown(0))
{
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;