- A+
今天复习Unity3d中的射线检测的知识,射线检测的用处可以很多,用于高速碰撞体的检测,比如子弹射击的检测。
新建一个场景,在摄像机中间添加一个正方体,添加平行光
在摄像机上添加脚本RayText.cs
添加代码,用于检测鼠标是否点击到正方体
代码如下
结果如下
当我点击正方体外时,输出“未检测到物体
当我点击正方体时,输出“检测到物体:Cube”
以上这种方式是以摄像机向鼠标点击点发出一条射线
如果我需要一个物体(如子弹)发出射线
用于实时检测子弹是否碰撞到目标
添加一个球体,让它处于正方体Z轴的同一直线上
添加脚本ZiDan.cs,让其充当子弹
我用最原始的方法,手工移动子弹,完成子弹的移动
运行,鼠标点击一下
转到scene标签,手工拉近球体(子弹)和正方体(目标)的距离
在点击一下
成功检测到了Cube
代码中的dis模拟的是子弹每帧移动的距离
只要目标物体在子弹上一帧与下一帧位置之间
我们就认为,目标被子弹击中
Physics.Raycast还有非常多的重载方法
RayCastHit用于保存射线检测的信息
基本用法就这样