Unity射线
2020-07-16 本文已影响0人
喜欢海苔Girl
射线
与现实中激光手电(激光笔)类似,射线的两个要素:原点和方向。unity引擎引入了这种机制,可以通过代码在场景中某个点,朝着某个方向生成一条虚拟的射线,当射线打到碰撞器上时,就表示射线碰撞到了物体,否则射线没有碰撞到物体。
创建射线
引擎中使用射线的类Ray来创建一条射线,创建射线时需要知道射线的原点和方向,以下是创建射线的方式
1.第一种
Ray ray = new Ray();
ray.origin = Vector3.zero;
ray.direction = Vector3.forward;
2.第二种
Ray ray = new Ray(Vector3.zero,Vector3.forward);
发射射线
要实现射线碰撞的应用,必须使用Physics类的方法Raycast方法发射射线来实现射线碰撞检测
static bool RayCast(Ray ray,out RayCastHit hitInfo)
方法说明
(1)如果射线打到碰撞器,则返回true否则返回false;
(2)hitInfo是一个结构体类型,包含成员如下
其中最常用的两个属性如下:
- point指的是射线打到碰撞器上的碰撞点 Vector3类型
- collider指的是射线碰撞到的碰撞器组件