射線:射線是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);