Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在unity中删除克隆的预制类?_C#_Unity3d - Fatal编程技术网

C# 如何在unity中删除克隆的预制类?

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

我使用了Destroy()代码,但当我在程序仍在运行时检查程序时,对象仍然存在。我错过什么了吗

 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();
}