C# 如何在unity中删除克隆的预制类?
我使用了Destroy()代码,但当我在程序仍在运行时检查程序时,对象仍然存在。我错过什么了吗C# 如何在unity中删除克隆的预制类?,c#,unity3d,C#,Unity3d,我使用了Destroy()代码,但当我在程序仍在运行时检查程序时,对象仍然存在。我错过什么了吗 class: mobile { GameObject mobileObject; SpriteRenderer mobileSR; int height; int width; } void Start() { mobile clone; clone = Instantiate(mobile); Des
class: mobile
{
GameObject mobileObject;
SpriteRenderer mobileSR;
int height;
int width;
}
void Start()
{
mobile clone;
clone = Instantiate(mobile);
Destroy(clone); //object clone didn't delete :(
}
您正在销毁您的类实例。如果您也想销毁游戏对象,请将您的
mobileObject
属性公开并使用destroy(clone.mobileObject)代码>
编辑:删除实例并销毁对象的最佳方式如下
class: mobile
{
GameObject mobileObject;
SpriteRenderer mobileSR;
int height;
int width;
public void destroy(){
Destroy(mobileObject); //deletes GameObject
Destroy(this); //deletes instance of class
}
}
然后,
Destroy
仅在下一个可能的时刻标记要删除的对象如果确实需要立即销毁某些对象,则有方法Destroy immediate
,但是,如果可能,应避免使用。这取决于您何时检查?对象可能会一直保持“活动”,直到帧结束。。在下一帧中,它应该被删除
void Start()
{
mobile clone;
clone = Instantiate(mobile);
clone.destroy();
}