GameObject是Unity编辑器中最重要的东西。游戏中的每个对象都是一个GameObject。这意味着你想像的一切都必须是GameObject。但是, GameObject不能自己做任何事情;你必须先赋予它属性, 才能使其成为角色, 环境或特殊效果。
GameObject是一个容器;我们必须向GameObject容器中添加片段, 以使其成为角色, 树, 灯光, 声音或你想要的任何其他形式。每一块称为一个组件。
根据你要创建的对象类型, 将不同的组件组合添加到GameObject。你可以比较一个带有空锅的GameObject和组成不同游戏配方的具有不同成分的组件。 Unity具有许多不同的内置组件类型, 你还可以使用Unity Scripting API制作自己的组件。
要记住的三个要点:
- 游戏对象可以包含其他游戏对象。此行为允许组织和关联彼此的GameObjects。更重要的是, 对父级GameObjects的更改可能会影响其子级?稍后, 将对此进行更多介绍。
- 将模型转换为GameObjects。 Unity为模型的各个部分创建GameObject, 你可以像其他任何GameObject一样对其进行更改。
- 层次结构中包含的所有内容都是一个GameObject。甚至诸如灯光和照相机之类的东西都是GameObjects。如果它在层次结构中, 则它是一个受你命令约束的GameObject。
创建和销毁游戏对象
有些游戏可以处理场景中的许多对象, 但是我们也可以在玩游戏时创建和删除宝藏, 角色和其他对象。
在Unity中, 我们可以使用Instantiate函数创建一个GameObject, 该函数将创建一个现有对象的新副本:
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);
}
}
请注意, 销毁功能还用于销毁单个组件, 而不会影响GameObject本身。一个常见的错误是编写如下内容:
Destroy(this);
评论前必须登录!
注册