1

我正在创建一个 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");
    }
}

但它不起作用。

4

2 回答 2

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);
于 2014-11-15T08:25:16.117 回答
-1

好吧,既然子弹被标记了Cube 1(Clone),我会使用

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

并且可能会将标签重命名为有意义的东西,比如bullet.

于 2014-11-15T08:30:30.153 回答