Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一-游戏对象获胜';当击中预制房屋时,它不会被摧毁_C#_Unity3d_Destroy_Gameobject - Fatal编程技术网

C# 统一-游戏对象获胜';当击中预制房屋时,它不会被摧毁

C# 统一-游戏对象获胜';当击中预制房屋时,它不会被摧毁,c#,unity3d,destroy,gameobject,C#,Unity3d,Destroy,Gameobject,在游戏中,你控制一个球(球体)和两种掉落的盒子:死亡立方和金立方。当球体撞击死亡立方体时,球体被摧毁了,但它没有被摧毁,我不知道为什么。立方体是预制的,它们有一个标签(DeathCube,GoldCube) 如果球体撞到goldCube,你会得到点数,但这也不起作用。尝试将两个OnTriggerEnter合并为一个 void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "DeathCube") {

在游戏中,你控制一个球(球体)和两种掉落的盒子:死亡立方和金立方。当球体撞击死亡立方体时,球体被摧毁了,但它没有被摧毁,我不知道为什么。立方体是预制的,它们有一个标签(DeathCube,GoldCube)


如果球体撞到goldCube,你会得到点数,但这也不起作用。

尝试将两个OnTriggerEnter合并为一个

void OnTriggerEnter(Collider other)
{
    if (other.gameObject.tag == "DeathCube") 
    {
        Destroy (gameObject);
    }

    if (other.gameObject.tag == "GoldCube") 
    {
        gold++;
    }
}  

我相信第二个是重写第一个,从不允许调用
Destroy()
。我本以为编译器会对此抛出错误,但您似乎没有指出这一点。

如果您没有刚体连接到碰撞中的至少一个对象(球或立方体),则不会启动触发器事件。

从文件中:

注意:仅当其中一个碰撞器还连接了刚体时,才会发送触发事件


来源:

你的代码到达
销毁(游戏对象)
行了吗?你把断点/日志放在那里了吗?是的,它也被添加到了Inspector公共游戏对象领域;您的球体碰撞器是否标记为
IsTrigger
?这就是问题所在,在我触发该对象后,我可以提供帮助!当我在编程的时候,经常是愚蠢的错误让我全神贯注,所以很容易在别人的代码中发现它。
void OnTriggerEnter(Collider other)
{
    if (other.gameObject.tag == "DeathCube") 
    {
        Destroy (gameObject);
    }

    if (other.gameObject.tag == "GoldCube") 
    {
        gold++;
    }
}