📅  最后修改于: 2023-12-03 15:20:51.652000             🧑  作者: Mango
在 Unity C# 中,GameObject 是一个代表游戏场景中的实体的类。GameObject 可以被认为是游戏场景中的“物体”,可以包括 Player、Enemy、道具、UI 元素等等。
创建 GameObject 非常简单,我们可以在场景中直接拖出一个 GameObject。也可以使用代码创建:
// 创建一个名为 "MyGameObject" 的 GameObject
var go = new GameObject("MyGameObject");
GameObject 组件包括 Transform、Mesh Filter、Mesh Renderer、Animator、Audio Source、Collider、Rigidbody 等等。我们可以使用以下方法获取 GameObject 的组件。
// 获取 Transform 组件
var transform = gameObject.GetComponent<Transform>();
// 获取 Mesh Filter 组件
var meshFilter = gameObject.GetComponent<MeshFilter>();
// 获取 Mesh Renderer 组件
var meshRenderer = gameObject.GetComponent<MeshRenderer>();
// 获取 Animator 组件
var animator = gameObject.GetComponent<Animator>();
// 获取 Audio Source 组件
var audioSource = gameObject.GetComponent<AudioSource>();
// 获取 Collider 组件
var collider = gameObject.GetComponent<Collider>();
// 获取 Rigidbody 组件
var rigidbody = gameObject.GetComponent<Rigidbody>();
在 Unity 中,GameObject 可以包含其他 GameObject,我们可以使用以下方法获取子 GameObject。
// 获取名为 "ChildGameObject" 的子 GameObject
var childGameObject = gameObject.transform.Find("ChildGameObject").gameObject;
// 获取所有子 GameObject
foreach (Transform child in gameObject.transform)
{
var childGameObject = child.gameObject;
}
我们可以使用以下方法激活和销毁 GameObject。
// 激活 GameObject
gameObject.SetActive(true);
// 禁用 GameObject
gameObject.SetActive(false);
// 销毁 GameObject
Destroy(gameObject);
GameObject 是 Unity C# 中非常重要的一个类,应用广泛。开发者需要熟练掌握 Unity C# 中的 GameObject 类,才能高效地开发游戏。