为实现鼠标控制人物转向,必须用到Ray相关函数,其中Physics.Raycast方法用途如下:
Physics.Raycast(ray , out rayHit , 100 , LayerMaskFloor);
//该方法return一个bool值。ray代表射线,out rayHit为射线碰撞点,100为射线长度,LayerMaskFloor为检测碰撞层(int 值),下面就开始创造这些参数
private int LayerMaskFloor;//定义一个int变量
LayerMaskFloor = LayerMask.GetLayer("Floor");//LayerMask.GetLayer返回一个int值,即为Floor层所在的数字,至此LayerMaskFloor创建完毕
Ray ray = Camera.Main.ScreenPointToRay(Input.mouseposition);//用于获取鼠标在世界坐标中的位置(屏幕坐标),ray获取完毕
RaycastHit rayHit;//用于获取射线的点的信息,rayHit获取完毕
下面可以对碰撞进行判断
if (Physics.Raycast(ray , out rayHit , 100 , LayerMaskFloor))
{
Vector3 lookAtPoint = rayHit.point;
transform.LookAt = lookAtPoint;
}