📅  最后修改于: 2020-10-29 04:20:27             🧑  作者: Mango
GameObjects的销毁与实例化一样重要。在本章中,我们将学习如何销毁GameObject。
幸运的是,销毁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)。这种新的游戏对象变量(类型游戏物体的)被用来指代该脚本被附接到游戏对象。如果将此脚本附加到多个对象,则只要涉及此变量,它们都将以相同的方式做出反应。
但是,不要混淆两者。
游戏物体以大写G和O为包含所有GameObjects和提供标准的方法如实例化,破坏和方法抓取部件的类。
游戏物体与小克和大写的O是一个游戏对象的特定实例,用来指代这个脚本当前连接到游戏对象。
现在让我们编译代码,然后回到Unity。
现在,我们将创建一个新的六边形精灵,并将脚本附加到它。接下来,右键单击层次结构中的gameObject,然后选择Duplicate 。在层次结构中创建了一个新的精灵。您应该使用“移动”工具重新定位它。重复这些步骤以创建相似的六边形。
单击每个六边形,然后查看它们的脚本组件。现在,您可以设置各个键,以使GameObject在按下该键时会自行销毁。例如,让我们创建5个六边形,并将其设置为在按下A,S,D,F和G键时销毁。
您可以在多个六角形上设置相同的键,并且在按下该键时,它们会同时破坏自身。这是一个使用gameObject引用的示例,您可以使用该引用来使用脚本来引用单个对象,而不必单独设置它们。
可以将相同的键设置在多个六边形上,并且按下该键时,它们都将同时销毁。这是一个使用gameObject引用的示例,您可以使用该引用来使用脚本来引用单个对象,而不必单独设置它们。
重要的是要理解,销毁一个GameObject并不意味着一个物体会破碎或爆炸。就游戏(及其代码)而言,销毁对象将简单(立即)停止其存在。现在,指向该对象及其引用的链接已断开,尝试访问或使用它们中的任何一个通常会导致错误和崩溃。