- Unity教程
- 统一 - 主页
- Unity - 简介
- Unity - 安装和设置
- Unity - 创建精灵
- Unity - 修改精灵
- 变换和对象父子关系
- Unity - 内部资产
- Unity - 保存和加载场景
- Unity - 基本运动脚本
- Unity - 理解碰撞
- Unity - 刚体和物理
- Unity - 自定义碰撞边界
- 了解预制件和实例化
- Unity - 游戏对象销毁
- Unity - 协程
- Unity - 控制台
- Unity - 音频简介
- Unity - 从 UI 开始
- Unity - 按钮
- Unity - 文本元素
- Unity - 滑块
- Unity - 材质和着色器
- Unity - 粒子系统
- Unity - 使用资源商店
- Unity 有用资源
- Unity - 快速指南
- Unity - 有用的资源
- 团结-讨论
Unity - 游戏对象销毁
游戏对象的销毁与实例化一样重要。在本章中,我们将学习如何销毁游戏对象。
幸运的是,销毁游戏对象和创建游戏对象一样容易。您只需要一个对要销毁的对象的引用,并以此引用作为参数调用Destroy()方法。
现在,让我们尝试制作 5 个六边形,当按下指定的键时它们会自行破坏。
让我们创建一个名为HexagonDestroyer的新脚本并在 Visual Studio 中打开它。我们将从创建一个公共KeyCode变量开始。KeyCode 用于指定标准键盘上的键,Input 类在其方法中使用它。通过公开此变量,就像我们之前对 Rigidbody 和 Prefab 所做的那样,我们可以通过编辑器访问它。当变量公开时,我们不需要将“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)用于引用此脚本所附加的游戏对象。如果将此脚本附加到多个对象上,则每当涉及此变量时,它们都会以相同的方式做出反应。
但是,不要混淆两者。
带有大写 G 和 O 的GameObject是包含所有 GameObject 的类,并提供标准方法(例如 Instantiate、Destroy 和获取组件的方法)。
带有小g 和大写 O 的gameObject是GameObject 的特定实例,用于引用此脚本当前附加的游戏对象。
现在让我们编译代码,然后返回 Unity。
现在,我们将创建一个新的六边形精灵,并将脚本附加到它上面。接下来,右键单击层次结构中的游戏对象并选择“复制”。在层次结构中创建一个新的精灵;您应该使用移动工具重新定位它。重复这些步骤以创建类似的六边形。
单击每个六边形并查看它们的脚本组件。您现在可以设置各个键,以便游戏对象在按下该键时自行销毁。例如,让我们创建 5 个六边形,并设置它们在按下 A、S、D、F 和 G 键时销毁。
你可以在多个六边形上设置同一个按键,当按键按下时,它们都会同时自我毁灭;这是使用gameObject引用的示例,您可以使用脚本来引用各个对象,而无需单独设置它们。
可以在多个六边形上设置同一个按键,按下按键时它们都会同时自我毁灭;这是使用gameObject引用的示例,您可以使用脚本来引用各个对象,而无需单独设置它们。
重要的是要理解,销毁游戏对象并不意味着对象会破碎或爆炸。就游戏(及其代码)而言,销毁一个物体将简单地(并立即)停止其存在。该对象及其引用的链接现在已损坏,尝试访问或使用其中任何一个通常会导致错误和崩溃。