如何销毁在Unity3D中与特定2D对象发生碰撞的所有2D对象?

时间:2015-11-03 22:34:01

标签: unity3d unityscript unity3d-2dtools

我正在尝试使用移动的2D对撞机作为“对象的移除器”,通过销毁它碰撞的所有对象但是在执行此操作时遇到问题。

2 个答案:

答案 0 :(得分:2)

OnTriggerEnter示例in the documentation完全符合您的要求:

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
void OnTriggerEnter(Collider other) {
    Destroy(other.gameObject);
    }
}

别忘了检查对撞机是否触发。该脚本应附加到游戏对象上,以破坏触及它的东西。

答案 1 :(得分:0)

我遇到了同样的问题。我正在制作2D游戏,因此您可能需要调整我的代码。您应该将对撞机上的“Is Trigger”设置为false(未选中)并将javascript脚本附加到“对象移除器”并使用下面的代码。

对于2D:

function OnCollisionEnter2D(coll: Collision2D) {
        Destroy(coll.gameObject);
}

对于3D:

function OnCollisionEnter(coll: Collision) {
        Destroy(coll.gameObject);
}

我不能100%确定3D代码是否有效。

希望这有帮助! :)

在此完整答案:https://stackoverflow.com/a/34862535/5792157