Unity - GameObject Destruction

GameObjects的破坏与实例化一样重要.在本章中,我们将学习如何销毁GameObjects.

幸运的是,销毁GameObjects就像创建它们一样简单.您只需要对要销毁的对象的引用,并使用此引用作为参数调用 Destroy()方法.

现在,让我们尝试制作5个六边形,当按下指定的键时会自行销毁.

让我们创建一个名为 HexagonDestroyer 的新脚本,并在Visual Studio中打开它.我们将首先创建一个公共 KeyCode 变量. KeyCode用于指定标准键盘上的键,其方法中的Input类使用它.通过将此变量公之于众,就像之前我们对Rigidbody和Prefabs所做的那样,我们可以通过编辑器访问它.当变量公开时,我们不需要将硬编码值(例如"KeyCode.A")放入代码中.使用尽可能多的对象可以使代码变得灵活.

public class HexagonDestroyer : MonoBehaviour {
   
   public KeyCode keyToDestroy;

   // Update is called once per frame
   void Update () {
      
      if (Input.GetKeyDown(keyToDestroy)) {
         Destroy (gameObject);
      }
   }
}

观察我们如何使用名为"gameObject"的变量(小g,大写字母O)在方法中.这个新的 gameObject 变量(类型 GameObject )用于引用此脚本附加到的gameObject.如果你将这个脚本附加在多个对象上,那么每当涉及这个变量时,它们都会以相同的方式做出反应.

不要让两者混淆.

  • 具有大写G和O的游戏对象是包含所有游戏对象并提供标准的 Instantiate,Destroy和获取组件的方法等方法.

  • gameObject ,其中 g和资本O是GameObject的特定实例,用于引用此脚本当前附加到的gameObject.

现在,让我们编译代码,然后返回Unity.

现在,我们将创建一个新的六边形精灵,并将我们的脚本附加到它上面.接下来,右键单击层次结构中的gameObject,然后选择复制.在层次结构中创建一个新的精灵;您应该使用移动工具重新定位它.重复这些步骤以创建类似的六边形.

Hexagon sprite Creation


移动工具六边形创建

点击每个六边形并查看他们的脚本组件.您现在可以设置各个键,以便在按下该键时GameObject会自行销毁.例如,让我们创建5个六边形,并在按下A,S,D,F和G键时将它们设置为销毁.

您可以在多个六边形上设置相同的键,当钥匙被按下时,他们都会同时摧毁自己;这是使用 gameObject 引用的一个示例,您可以使用该引用使用脚本引用单个对象,而无需单独设置它们.

可以在多个六边形上设置相同的按键,当按下按键时,它们都会同时自行消灭;这是使用 gameObject 引用的一个示例,您可以使用该引用使用脚本引用单个对象,而无需单独设置它们.

It重要的是要理解破坏GameObject并不意味着对象会破碎或爆炸.就游戏(及其代码)而言,销毁对象将简单地(并且立即)停止存在.此对象及其引用的链接现在已断开,尝试访问或使用其中任何一个通常会导致错误和崩溃.