unity3d 如何销毁Unity中的父对象

j5fpnvbx  于 2023-02-05  发布在  其他
关注(0)|答案(2)|浏览(569)

我正在Unity中制作一款射击游戏,敌人看起来很接近人类,因为我添加了许多不同的形状来组成一个敌人。问题是,当我射击敌人时,不同的形状消失了,而不是整个敌人。以下是我的碰撞代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class WeaponCollision : MonoBehaviour
{
    void OnParticleCollision(GameObject other) 
    {
        Destroy(other);
    }
}

有没有办法删除整个对象,而不是所有不同的部分?谢谢!

qc6wkl3g

qc6wkl3g1#

您可以使用UnityEngine.Object类中的Destroy方法销毁Unity中的父对象。以下是您如何使用该方法:使用UnityEngine;
公共类示例{公共游戏对象parentObject;

private void DestroyParentObject()
{
    // Destroys the parent object and all its children
    Destroy(parentObject);
}

}
在本例中,Destroy方法销毁parentObject及其所有子对象。Destroy方法将对象引用作为其参数,该参数可以是对游戏对象、组件或任何其他UnityEngine.Object的引用。
还可以通过向Destroy方法传递第二个参数,指定销毁对象之前的延迟时间(以秒为单位):
销毁(父对象,5.0f);
在此示例中,parentObject将在5秒后销毁。

yacmzcpb

yacmzcpb2#

你可以尝试GameObject.transform.parent来获取当前变换的父对象。你可以在Transform.parent读取
做这样的事

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class WeaponCollision : MonoBehaviour
{
    void OnParticleCollision(GameObject other) 
    {
        Destroy(other.transform.parent.gameobject);
    }
}

相关问题