在团结3d中删除对象的盒子对撞机

时间:2013-02-15 05:48:54

标签: c# object scripting unity3d raycasting

这是Update函数中的代码。该物体有一个箱子对撞机。

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);
    }
}

但是盒子对撞机没有被破坏。

我该如何销毁它?

2 个答案:

答案 0 :(得分:4)

现在使用代码

 Destroy(hit3.collider);

答案 1 :(得分:1)

根据Destroy()上的文档“实际对象破坏始终延迟到当前Update循环之后,但总是在渲染之前完成。”

这可能是问题吗?如果在当前的Update函数中检查该对象可能尚未被销毁。否则Destroy()应该删除该GameObject的所有组件。