【问题标题】:how to destroy instantiated objects如何销毁实例化对象
【发布时间】:2019-09-25 19:48:00
【问题描述】:

我正在制作一个统一的 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)

【问题讨论】:

标签: c# visual-studio unity3d


【解决方案1】:

通过存储对它的引用

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

您所做的是试图破坏您不应该破坏的原始(假设为 Prefab)引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多