碰撞后如何破坏物品

时间:2014-11-15 08:16:51

标签: unity3d unityscript bullet

我正在创造一个fps游戏,我创造了枪,子弹和敌人。 现在我想在与子弹碰撞后让我的敌人被摧毁。 我的敌人是一个名为Fire的游戏对象并标记了Enemy,我的子弹名为“Cube 1(Clone)”并标记为“Cube 1(Clone)”。我为此制作了一个剧本:

#pragma strict

function OnTriggerEnter(theCollision : Collider)
{
    if(theCollision.gameObject.name=="Cube 1") 
    {
        Destroy(gameObject);
        Debug.Log("Dead");
    }
}

但它不起作用。

2 个答案:

答案 0 :(得分:0)

您需要检查标签而不是名称。您可以检查姓名,但记住它会有“(克隆)”。

function OnTriggerEnter(theCollision : Collider)
{
    if(theCollision.tag == "Cube 1") 
    {
        Destroy(gameObject);
        Debug.Log("Dead");
    }
}

如果您不确定标记是否正确,可以在if语句中使用这两个检查。

if(theCollision.tag == "Cube 1" || theCollision.gameObject.name == "Cube 1(Clone)") 
    Destroy(gameObject);

答案 1 :(得分:-1)

因为子弹被标记为Cube 1(Clone),所以我会使用

if(theCollision.tag == "Cube 1(Clone)"){...}

并且可能会将标记重命名为有意义的内容,例如bullet