游戏开发人员可以使用光线投射,用于像瞄准,确定视线,测量距离之类的动作。Unity当中的Raycast的重载有很多。现在展示最常用的2中方法

boolRaycast(Vector3origin,Vector3direction,floatdistance,LayerMaskmask);

参数解释
origin : 是光线的开始位置
direction : 光线的方向
distance : 光线行进的距离(可为null)
mask : 确定光线会撞上哪一层(可为null)


如果要确定摄像机前确定是否有某个物体,可以用如下代码

voidUpdate(){if(Physics.Raycast(transform.position,transform.forward,10)){print("thereissomethinginfrontofthecamera!");}}

注意此代码放在camera中


另一个

boolRaycast(Vector3origin,Vector3direction,outRaycastHithit,floatdistance);

这个重载方法使用了一个RaycastHit类型的参数 , 它是光线碰撞到的对象

voidUpdate(){floatdirX=Input.GetAxis("MouseX");floatdirY=Input.GetAxis("MouseY");transform.Rotate(dirY,-dirX,0);UptateRaycastHit();}voidUpdateRaycastHit(){RayCastHithit;if(Physics.Raycast(transform.position,transform.forward,outhit)){Distroy(hit.collider.gameObject)}}