射线:射线是3D世界一个向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射。
用途:射线范围比较广,多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动等。
Ray是一个结构体:
变量:
Direction:射线的方向
Origin:射线的起点。
构造函数:
Ray:构造一条射线。
方法:
GetPoint:返回距离单位沿射线点。
ToString:转换成字符串。
相关API:
Ray ray=Camera.main.ScreenPointToRay(Vector3 Pos):返回一条射线由摄像机近裁面发射经过Pos的射线。
Ray ray=Camera.main.ViewportPointToRay(Vector3 Pos):返回一条射线Ray从摄像机到视口(视口外无效)指定一个点。
RaycastHit 光线投射碰撞信息:
barycentricCoordinate:碰到的三角形的重心坐标。
collider:碰到的碰撞器。
distance:从射线到碰撞点的距离。
lightmapCoord:在触碰点的UV光照贴图的坐标。
normal:射线触碰表面的法线。
point:在世界坐标空间,射线碰到碰撞器的接触点。
rigidbody:碰到的该碰撞器上的刚体。如果碰撞器没有刚体则返回null。
textureCoord:在触碰点的UV纹理坐标。
textureCoord2:在接触点处的第二套UV纹理坐标。
transform:碰到的该刚体或碰撞器的变换。
triangleIndex:碰到的三角形索引。
Bool :Physics.Raycast(Ray ray,out RaycastHit);