玩家进入扳机时如何销毁我的GameObject?

时间:2019-12-15 21:13:12

标签: c# unity3d

当玩家进入触发器时,我似乎无法摧毁其气球(游戏对象)。 有谁知道如何做到这一点? 我尝试使用碰撞,但是没有用。 这是没有用的碰撞脚本(它在气球上)

public class PistolPickup : MonoBehaviour
{
    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.name == "Player")
        {
            Destroy(collision.gameObject);
            Debug.Log("Destroyed");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

首先,您应该了解 OnCollisionEnter 事件和 OnTriggerEnter 事件之间的区别。前者在游戏对象触摸时触发,而后者在一个重叠另一个触发时触发。

要使上述两种方法都起作用,对象必须具有对撞机。但是根据您选择的上述方法,还应该相应地检查对撞机上的 IsTrigger 选项。

因此,假设以上步骤已完成,您可以使代码看起来像这样:

public class PistolPickup : MonoBehaviour
{
    void OnTriggerEnter(Collision collision)
    {
        if (collision.gameObject.name == "Player")
        {
            Destroy(this.gameObject);
            Debug.Log("Destroyed the pickup.");
        }
    }
}

注意:要使代码正常工作,您必须检查拾取对象对撞机上的 IsTrigger 选项。