Raycasting光线投射
游戏开发人员可以使用光线投射,用于像瞄准,确定视线,测量距离之类的动作。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)}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。