2013-02-15 37 views
4

這裏是我的代碼Update的功能。該物體有一個箱子對撞機。刪除箱體中對象的碰撞3d

if (Input.GetMouseButtonDown(0)) { 
    Ray ray = camera.ScreenPointToRay(Input.mousePosition); 
    if (Physics.Raycast (ray, out hit3, 400.0F)) { 
     wName = hit3.collider.gameObject.name; 
     Destroy(hit3.collider.gameObject); 
    } 
} 

但箱子對撞機沒有被破壞。

我該如何銷燬它?

+0

嘗試現在正在努力禁止對撞機不會破壞。你想得到什麼效果? – Maris 2013-02-15 06:02:29

+0

只是想破壞對撞機 – Sona 2013-02-15 06:14:37

+1

但是這個腳本工作後wName裏面有一些價值嗎? – Maris 2013-02-15 06:20:19

回答

3

及其與代碼

Destroy(hit3.collider); 
1

根據Destroy()上的文檔「實際的對象銷燬總是延遲到當前更新循環之後,但總是在呈現前完成。」

這可能是問題嗎?如果您在當前的Update函數中檢查該對象可能尚未銷燬。否則Destroy()應該刪除該GameObject的所有組件。

+0

剛剛遇到了這個確切的問題。無法弄清爲什麼我的光線投射正在擊中一個被「摧毀」的物體。在破壞對象之前禁用對撞機解決了問題。 – Spider 2018-02-13 23:23:32