切換
舊版
前往
大廳
主題

(Unity) 手機 Raycast 漏偵測解決。

浪濤書記 | 2019-07-18 21:38:31 | 巴幣 2 | 人氣 310


這篇其實不算解決,是自己基礎觀念沒打好,
不過還是記錄一下過程:
漏偵測的原因是我把 Raycast放到  Update() 裡去做偵測,
把 Raycast的部分移動 FixUpdate() 裡執行就解決了。


[碎念]
一直都記著一句「Unity物理的操作要丟到 FixUpdate()執行」,
不過因為以前有些BUG我是把操作從 FixUpdate()移到 Update()才解決,
導致我一直以來很不喜歡使用 FixUpdate() ;
過去我開發的平台都在電腦,
把 Raycast放在 Update()也沒出過問題,
這次工作接觸到手機平台,
測試時沒事,但遊戲丟到手機後相關數值就對不上,
幸好我還記得「物理操作放 FixUpdate」這句話,
雖然對這句話一直都抱有存疑,
不過還是試著照做一遍,還真完美解決了狀況。
然後還有一點,說到物理我通常想到的是碰撞、Rigidbody,
從來沒把 Raycast連想到是物理的一部分,
直到我忽然注意到 Raycast的語法開頭是 Physics.Raycast,
才想到說可以試試在 FixUpdate執行 Raycast偵測.....


[2019.07.19 更]
用了 FixUpdate在物品多又快時還是會漏偵測,
只是機率明顯比用 Update小非常多 (10%→0.1%以下),
目前做法是在出口加一個碰撞體,
擋住物品讓它一定會被偵測到,
不過這是我要讓物品通過後被消除所以可以這樣做,
只偵測通過、不銷毀要如何避免漏測還沒頭緒。
送禮物贊助創作者 !
0
留言

創作回應

更多創作