GameObject 是 Unity 编辑器中最重要的东西。 游戏中的每个对象都是一个 GameObject。 这意味着你想象的一切都必须是一个游戏对象。 但是,GameObject 本身不能做任何事情; 你必须先给它属性,然后它才能成为角色、环境或特殊效果。
GameObject 是一个容器; 我们必须向 GameObject 容器添加片段,使其成为角色、树、光、声音或任何你想要的东西。 每一块称为一个组件。
根据您要创建的对象类型,将不同的组件组合添加到游戏对象中。 您可以将一个 GameObject 与一个空锅和具有构成不同游戏配方的不同成分的组件进行比较。 Unity 有许多不同的内置组件类型unity赋予物体初速度unity赋予物体初速度,您也可以使用 Unity Scripting API 创建自己的组件。
要记住的三个关键点:
游戏对象可以包含其他游戏对象。 此行为允许组织 GameObjects 并将它们相互关联。 更重要的是,对父 GameObjects 的更改会影响其子对象吗? 稍后会详细介绍。 将模型转换为游戏对象。 Unity 为模型的各个部分创建游戏对象游戏角色,您可以像更改任何其他游戏对象一样对其进行更改。 层次结构中包含的所有内容都是一个游戏对象。 甚至像灯光和相机这样的东西也是游戏对象。 如果它在层次结构中,则它是一个由您的命令绑定的游戏对象。 创建和销毁游戏对象 有些游戏可以在一个场景中处理多个对象,但我们也可以在玩游戏时创建和删除宝藏、角色和其他对象。
在 Unity 中,我们可以使用 Instantiate 函数创建一个 GameObject3D素材,这将创建一个现有对象的新副本:
public GameObject enemy;void Start() {for (int i = 0; i < 6; i++) {Instantiate(enemy);}}
Unity 还可以提供销毁函数,用于在帧更新完成后或短暂延迟后销毁对象:
void OnCollisionEnter(Collision otherObj) {if (otherObj.gameObject.tag == "Missile") {Destroy(gameObject, .5f);}}
【Unity GameObject 解释及用法详解】请注意 destroy 函数也用于销毁单个组件而不影响 GameObject 本身。 一个常见的错误是这样写:
销毁(这个);