我正在统一制作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)
答案 0 :(得分:3)
通过存储对它的引用
var obj = Instantiate(crackedObject, transform.position, transform.rotation);
Destroy(gameObject);
Destroy(obj, 3f);
您所做的是试图破坏您不应该使用的原始(假定Prefab)参考。