射線

射線:射線是3D世界中一個點向一個方向發(fā)射的一條無終點的線,在發(fā)射軌跡中與其他物體發(fā)生碰撞時,它將停止發(fā)射 。

用途:射線應(yīng)用范圍比較廣,?多用于碰撞檢測(如:子彈飛行是否擊中目標)、角色移動等 等。

相關(guān)API:

1、Ray?Camera.main.ScreenPointToRay(Vector3?pos)返回一條射線Ray從攝像機到屏幕指定一個點

2、Ray?Camera.main.ViewportPointToRay(Vector3?pos)返回一條射線Ray從攝像機到視口(視口之外無效)指定一個點

3、Ray射線類

4、RaycastHit光線投射碰撞信息

5、bool?Physics.Raycast(Vector3?origin,?Vector3?direction,?float?distance,?int?layerMask)

當(dāng)光線投射與任何碰撞器交叉時為真,否則為假。

bool?Physics.Raycast(Ray?ray,?Vector3?direction,?RaycastHit?out?hit,?float?distance,?int?layerMask)

在場景中投下可與所有碰撞器碰撞的一條光線,并返回碰撞的細節(jié)信息()。

bool?Physics.Raycast(Ray?ray,?float?distance,?int?layerMask)

當(dāng)光線投射與任何碰撞器交叉時為真,否則為假。

bool?Physics.Raycast(Vector3?origin,?Vector3?direction,?RaycastHit?out?hit,float?distance,?int?layerMask)

當(dāng)光線投射與任何碰撞器交叉時為真,否則為假。

注意:如果從一個球型體的內(nèi)部到外部用光線投射,返回為假。

參數(shù)理解:

origin?:在世界坐標中射線的起始點

direction:射線的方向

distance:射線的長度

hit:使用c#中out關(guān)鍵字傳入一個空的碰撞信息類,然后碰撞后賦值。可以得到碰撞物體的transform,rigidbody,point等信息。

layerMask:?只選定Layermask層內(nèi)的碰撞器,其它層內(nèi)碰撞器忽略。選擇性的碰撞

6、RaycastHit[]?RaycastAll(Ray?ray,?float?distance,?int?layerMask)

投射一條光線并返回所有碰撞,也就是投射光線并返回一個RaycastHit[]結(jié)構(gòu)體。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容