如何销毁实例化的对象

时间:2019-09-25 19:48:00

标签: c# visual-studio unity3d

我正在统一制作3D游戏,并且制作了将立方体分解成碎片的动画。但是多维数据集的一小部分仍留在场景中,以后会出现一些性能问题。之后,我尝试使用此方法销毁我的游戏对象:

public GameObject crackedObject;
// Start is called before the first frame update
private void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.name == "Sphere")
    {
        Instantiate(crackedObject, transform.position, transform.rotation);
        Destroy(gameObject);
        Destroy(crackedObject, 3f);

    }
}

此代码放在我的多维数据集上。但碰撞后无法破坏我的多维数据集的副本。它会摧毁(gameobject)但不会(crackedObject)

1 个答案:

答案 0 :(得分:3)

通过存储对它的引用

var obj = Instantiate(crackedObject, transform.position, transform.rotation);
Destroy(gameObject);
Destroy(obj, 3f);

您所做的是试图破坏您不应该使用的原始(假定Prefab)参考。