我试图弄清楚我基本上如何能站在压力板上并使某些东西消失。我有工作来销毁与您互动的对象,但没有找到解决方案以销毁另一个对象。
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("PressurePlate"))
{
Destroy(collision.gameObject.CompareTag("tree"));
}
}
答案 0 :(得分:2)
Destroy(Object)
接收一个对象,更具体地说,是一个组件或一个游戏对象;
(尽管您尝试销毁一个布尔值(如在这种情况下所做的那样,什么也不会发生;尽管如此)可以解决这个问题。)
如果您想销毁与之碰撞的游戏对象,Destroy(collision.gameObject)
会做到。
如果您想销毁带有特定标签的所有GameObject,可以执行GameObject.FindGameObjectsWithTag(tag)
,如下所示:
foreach (var gameObj in GameObject.FindGameObjectsWithTag("Your target tag")){
Destroy(gameObj);
}
还有其他一些方法,例如Object.FindObjectsOfType(Type)
,可用于获取具有特定类型的所有游戏对象。
但是,由于它们通常运行缓慢,因此除非需要,我不建议您使用它们;
您可以考虑先将相应的游戏对象缓存在某个位置,然后再销毁它们。