Unity - 游戏对象销毁

  • 简述

    GameObjects 的销毁与实例化一样重要。在本章中,我们将学习如何销毁游戏对象。
    幸运的是,销毁游戏对象就像创建它们一样容易。您只需要对要销毁的对象的引用,然后调用Destroy()将此引用作为参数的方法。
    现在,让我们尝试制作 5 个六边形,当按下指定的键时它们会自行破坏。
    让我们制作一个名为HexagonDestroyer并在 Visual Studio 中打开它。我们将首先公开KeyCode多变的。KeyCode 用于指定标准键盘上的键,其方法中的 Input 类使用它。通过公开这个变量,就像我们之前对 Rigidbody 和 Prefabs 所做的那样,我们可以通过编辑器访问它。当变量公开时,我们不需要hardcode诸如“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 是class它包含所有 GameObjects 并提供标准方法,例如 Instantiate、Destroy 和获取组件的方法。
    • gameObjectsmallg 和大写 O 是特定的instance一个游戏对象,用来指代这个脚本当前附加到的游戏对象。
    现在让我们编译我们的代码,然后返回 Unity。
    现在,我们将创建一个新的六边形精灵,并将我们的脚本附加到它上面。接下来,右键单击层次结构中的游戏对象并选择Duplicate. 在层次结构中创建了一个新的精灵;你应该使用Move工具来重新定位它。重复这些步骤以创建类似的六边形。
    good good
    单击每个六边形并查看它们的脚本组件。您现在可以设置各个键,以便游戏对象在按下该键时自行销毁。例如,让我们创建 5 个六边形,并设置它们在按下 A、S、D、F 和 G 键时销毁。
    可以在多个六边形上设置同一个按键,按键时它们都会同时销毁;这是一个使用的例子gameObjectreference,您可以使用它来引用使用脚本的单个对象,而无需单独设置它们。
    同一个按键可以设置在多个六边形上,按键时它们都会同时自我毁灭;这是一个使用的例子gameObjectreference,您可以使用它来引用使用脚本的单个对象,而无需单独设置它们。
    重要的是要了解销毁游戏对象并不意味着对象会破碎或爆炸。就游戏(及其代码)而言,销毁一个对象将简单地(并立即)停止其存在。指向该对象及其引用的链接现在已断开,尝试访问或使用其中任何一个通常会导致错误和崩溃。