Unity物理投射相關問題整理

2022-01-23 15:58:47 字數 898 閱讀 8573

預設既支援觸發器,也支援剛體。投射的最後乙個引數querytriggerinteraction可以設定,是否包含觸發器事件。

投射物剛好相交則會返回接觸點資訊(hits.point)法線資訊等,如果是包含則沒有,返回(0,0,0)。

即使設定了投射方向,投射距離也是如此。安全的做法還是用射線投射

你建立的快取陣列可以重複用,但需要每次使用時手動清除之前的狀態,這個方法並不會幫你清除。

或者通過返回值的數量來遍歷。

(但int.maxvalue倒是可以)

var hits = physics.boxcastall(vector3.zero, vector3.one * 10000, vector3.zero, quaternion.identity, 0

);debug.log(

"hits length:

" +hits.length);

foreach (var item in

hits)

列印:hits length: 0

2017/5/23 - 重新測試之後,更正下測試結果,之前有誤

使用check系列api,比如physics.checkbox(...) 是可以檢測到的

使用overlap系列api,比如physics.overlapbox(...)也是可以檢測到的

而使用cast系列api,比如physics.raycast。則檢測不到,必須在包裹collider的外面。

無論是box,capsule還是ray,line都不行。

另外對於meshcollider,如果一定要用cast來檢測,可以用指令碼做成雙面的meshcollider

以上測試版本是unity5.5.2 f1

Unity物理投射相關問題整理

預設既支援觸發器,也支援剛體。投射的最後乙個引數querytriggerinteraction可以設定,是否包含觸發器事件。投射物剛好相交則會返回接觸點資訊 hits.point 法線資訊等,如果是包含則沒有,返回 0,0,0 即使設定了投射方向,投射距離也是如此。安全的做法還是用射線投射 你建立的...

集合相關問題整理

1.集合的型別為什麼不能指定為基本資料型別?如 listlist new arraylist 答 集合中存放的可都是物件的引用,實際內容都在堆上面或者方法區裡面,但是基本資料型別是在棧上分配空間的,隨時就被收回的。但是通過自動包裝類就可以把基本型別轉為物件型別,存放引用就解決了這個問題。2.集合中存...

opencv相關問題整理(1)

1.如何將mat 轉換成iplimage,或者iplimage轉換成mat?iplimage cvgetimage const cvarr arr,iplimage image header cvmat cvgetmat const cvarr arr,cvmat header,int coi nu...