射线是在三维世界中从一个点沿┅个方向发射的一条无限长的线在射线的轨迹上,一旦与添加了unity碰撞体器的模型发生unity碰撞体将停止发射。我们可以利用射线实现子弹擊中目标的检测鼠标点击拾取物体等功能。
Ray射线类和RaycastHit射线投射unity碰撞体信息类是两个最常用的射线工具类
创建一条射线Ray需要指明射线的起点(origin)和射线的方向(direction)。这两个参数也是Ray的成员变量注意,射线的方向在设置时如果未单位化Unity 3D会自动进行单位归一化处理。射线Ray嘚构造函数为 :
RaycastHit类用于存储发射射线后产生的unity碰撞体信息常用的成员变量如下:collider与射线发生unity碰撞体的unity碰撞体器
distance 从射线起点到射线与unity碰撞體器的交点的距离
normal 射线射入平面的法向量
point 射线与unity碰撞体器交点的坐标(Vector3对象)
当我们要使用鼠标拾取物体或判断子弹是否击中物体时,我們往往是沿着特定的方向发射射线这个方向可能是朝向屏幕上的一个点,或者是世界坐标系中的一个矢量方向沿世界坐标系中的矢量方向发射射线我们已经在上面演示过如何实现。针对向屏幕上的某一点发射射线Unity