为什么当我尝试摧毁另一个游戏对象时,一个游戏对象可以工作,但相反却不起作用?

问题描述 投票:0回答:2

我想要一个游戏对象删除自身以及带有“Card”标签的不同游戏对象 该脚本附加到它们两者上,所以我希望它对两者都适用,但只有其中一个可以做到这一点。我用了这个代码 当我放下卡时会调用该代码,因此一次只有一张卡运行该代码

Destroy(gameObject);
Destroy(GameObject.FindWithTag("Card"));

我也尝试添加

gameObject.transform.SetAsLastSibling();
看看它是否会改变什么,但它没有

c# unity-game-engine destroy
2个回答
0
投票

这行代码在游戏对象内部执行

Destroy(gameObject);
Destroy(GameObject.FindWithTag("Card")); 

但是你在执行第二行代码之前就销毁了游戏对象,它应该是这样的

Destroy(GameObject.FindWithTag("Card"));
Destroy(gameObject);

0
投票

我通过使用我想要销毁的游戏对象创建一个数组,然后按顺序销毁它们来修复它

GameObject[] destroy = GameObject.FindGameObjectsWithTag("Card");
        for (var i = 0; i < destroy.Length; i++)
        {
            Destroy(destroy[i]);
        }
© www.soinside.com 2019 - 2024. All rights reserved.