日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

射线碰撞

發(fā)布時(shí)間:2023/12/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 射线碰撞 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Physics.Raycast 光線投射

1.一個(gè)靜態(tài)的發(fā)射射線的方法,在場(chǎng)景中投下可與所有碰撞器碰撞的一條光線。

參數(shù)解釋:

origin:射線起始點(diǎn)

direction:射線方向

distance:射線長(zhǎng)度

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

返回布爾類(lèi)型,當(dāng)光線投射與任何碰撞器交叉時(shí)為真,否則為假。(注意:如果從一個(gè)球型體的內(nèi)部到外部用光線投射,返回為假。 )這一點(diǎn)測(cè)試不成功!

2.在場(chǎng)景中投下可與所有碰撞器碰撞的一條光線,并返回碰撞的細(xì)節(jié)信息。Unity3D教程手冊(cè)

Parameters參數(shù)

origin:在世界坐標(biāo),射線的起始點(diǎn)。

direction:射線的方向。

distance:射線的長(zhǎng)度。

hitInfo:如果返回true,hitInfo將包含碰到器碰撞的更多信息。

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

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

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

詳細(xì)解釋一下: LayerMask 層蒙版

每一個(gè)物體都有一個(gè)Tag和Layer標(biāo)簽,tag就是一個(gè)簡(jiǎn)單的標(biāo)簽,可以用來(lái)區(qū)分不同的物體,LayerMask的作用是可以選擇性地過(guò)濾物體,例如當(dāng)投射射線時(shí),比如camera.cullingmask和光線投射時(shí)候。Unity3D教程手冊(cè)

可以在TagManager中編輯tag和Layer。然后設(shè)置物體的Layer層級(jí),在攝像機(jī)中設(shè)置camera.cullingmask,可以控制攝像機(jī)的渲染層級(jí),用在射線上,可以控制射線碰撞什么,不碰撞什么。

//Raycast hit

RaycastHit hit;

LayerMask mask = 1 << 8;

void testRay(){

if(Physics.Raycast(transform.position,Vector3.right,out

hit,100, mask.value)){

Debug.DrawLine(transform.position,hit.point,Color.red,1);

}

}

上面的例子是從當(dāng)前腳本所綁定的物體做標(biāo)點(diǎn)向右發(fā)射長(zhǎng)度100的射線,射線碰撞層級(jí)為8,其他層級(jí)忽略。為了測(cè)試,我們?cè)谂鲎驳轿矬w后畫(huà)一條紅色線條,表示射線,停留一秒鐘。上面這些是射線的一些基本操作。

總結(jié)

以上是生活随笔為你收集整理的射线碰撞的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。