Unity3D复习之射线

  • A+
所属分类:Unity3d 原创文章

今天复习Unity3d中的射线检测的知识,射线检测的用处可以很多,用于高速碰撞体的检测,比如子弹射击的检测。

新建一个场景,在摄像机中间添加一个正方体,添加平行光

在摄像机上添加脚本RayText.cs

添加代码,用于检测鼠标是否点击到正方体

代码如下

Unity3D复习之射线

结果如下

Unity3D复习之射线

当我点击正方体外时,输出“未检测到物体

当我点击正方体时,输出“检测到物体:Cube”

以上这种方式是以摄像机向鼠标点击点发出一条射线

如果我需要一个物体(如子弹)发出射线

用于实时检测子弹是否碰撞到目标

添加一个球体,让它处于正方体Z轴的同一直线上

添加脚本ZiDan.cs,让其充当子弹

Unity3D复习之射线

我用最原始的方法,手工移动子弹,完成子弹的移动

运行,鼠标点击一下

Unity3D复习之射线

转到scene标签,手工拉近球体(子弹)和正方体(目标)的距离

在点击一下

Unity3D复习之射线

成功检测到了Cube

代码中的dis模拟的是子弹每帧移动的距离

只要目标物体在子弹上一帧与下一帧位置之间

我们就认为,目标被子弹击中

Physics.Raycast还有非常多的重载方法

RayCastHit用于保存射线检测的信息

基本用法就这样

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: