5

これが関数内の私のコードです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);
    }
}

しかし、ボックスコライダーは破壊されていません。

どうすれば破壊できますか?

4

2 に答える 2

4

現在、コードで動作しています

 Destroy(hit3.collider);
于 2013-02-15T11:59:58.127 に答える
1

Destroy()に関するドキュメントによると、「実際のオブジェクトの破棄は、現在の Update ループの後まで常に遅延されますが、常にレンダリングの前に行われます。」

これが問題でしょうか?現在の Update 関数内で確認すると、そのオブジェクトがまだ破棄されていない可能性があります。それ以外の場合、Destroy() はそのゲームオブジェクトのすべてのコンポーネントを削除する必要があります。

于 2013-02-15T11:59:09.677 に答える