版本: Unity 6 (6000.0)
语言英语
  • C#

GameObject

UnityEngine 中的类

/

继承自: Object

/

实现于: UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每一个建议的更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

描述

所有可以在场景中存在的对象的基类。向 GameObject 添加组件以控制其外观和行为。

GameObject 是 Unity 中的基本对象类型。使用 GameObject 来表示项目中的所有内容,包括角色、道具和场景。 GameObject 充当功能性 组件 的容器,这些组件决定了 GameObject 的外观和行为。

任何从 MonoBehaviour 派生的脚本都可以作为组件添加到 GameObject 中。使用 MonoBehaviour 代码中的 Component.gameObject 属性来访问组件所附加的 GameObject

MonoBehaviour事件函数(例如常规的每帧 MonoBehaviour.Update)允许您使对象对事件做出响应。为了接收这些事件回调,GameObject 必须在场景中处于活动状态,这意味着 activeSelfactiveInHierarchy 属性都必须为 true

您可以通过调用其中一个 构造函数 从代码中创建一个空的 GameObject。但是,更常见的方法是以 预制件 的形式实例化一个 GameObject,其中包含预先配置的组件、属性值和子对象。有关更多信息,请参阅手册中的 在运行时实例化预制件

您可以使用 Inspector 窗口在编辑器中修改此类的许多属性。有关使用 GameObject 类的更全面指南,请参阅手册中的 GameObject

以下示例创建了一个名为“myExampleGO”的 GameObject,并添加了一个类型为 AudioSource 的组件

  using UnityEngine;

public class Example_GameObject : MonoBehaviour { private void Start() { GameObject myExampleGO = new GameObject("myExampleGO", typeof(AudioSource)); } }

其他资源: Component

属性

activeInHierarchyGameObject 在场景层次结构中的活动状态。如果处于活动状态,则为 true,如果处于非活动状态,则为 false。(只读)
activeSelfGameObject 的本地活动状态。如果处于活动状态,则为 true,如果处于非活动状态,则为 false。(只读)
isStaticGameObject 是否为其设置了任何静态编辑器标志。
layer标识分配给 GameObject 的层的整数。
scene包含 GameObject 的场景。
sceneCullingMask为 GameObject 定义的场景剔除蒙版。(只读)
tag分配给 GameObject 的标签。
transform附加到 GameObject 的 Transform(只读)。

构造函数

GameObject创建一个新的 GameObject,并使用可选参数来指定要附加的名称和一组组件。

公共方法

AddComponent向 GameObject 添加指定类型的组件。
BroadcastMessage调用附加到 GameObject 或其任何子对象上的每个 MonoBehaviour 上的指定方法。
CompareTag检查指定标签是否附加到 GameObject。
GetComponent通过将组件类型作为类型参数提供给泛型方法,检索对指定类型组件的引用。
GetComponentAtIndex检索对 GameObject 的组件数组中指定索引处的组件的引用。
GetComponentCount检索当前附加到 GameObject 的组件总数。
GetComponentInChildren检索对指定 GameObject 或其任何子对象上的类型为 T 的组件的引用。
GetComponentIndex检索指定组件在附加到 GameObject 的组件数组中的索引。
GetComponentInParent检索对指定 GameObject 或其任何父对象上的类型为 T 的组件的引用。
GetComponents检索指定 GameObject 上所有类型为 T 的组件的引用。
GetComponentsInChildren检索指定 GameObject 及其任何子对象上所有类型为 T 的组件的引用。
GetComponentsInParent检索指定 GameObject 及其任何父对象上所有类型为 T 的组件的引用。
SendMessage调用附加到 GameObject 的每个 MonoBehaviour 上的指定方法。
SendMessageUpwards调用附加到 GameObject 上的每个 MonoBehaviour 上的指定方法,以及行为的每个祖先上的方法。
SetActive根据提供的参数的值激活或停用 GameObject。
TryGetComponent如果存在,则检索指定类型的组件。

静态方法

CreatePrimitive创建指定 PrimtiveType 的 GameObject,带有一个网格渲染器和适当的碰撞器。
Find查找并返回具有指定名称的 GameObject。
FindGameObjectsWithTag检索所有用指定标签标记的活动 GameObject 的数组。如果没有任何 GameObject 具有该标签,则返回一个空数组。
FindWithTag检索第一个用指定标签标记的活动 GameObject。如果没有任何 GameObject 具有该标签,则返回 null。
GetScene检索包含具有指定实例 ID 的 GameObject 的场景。
InstantiateGameObjects创建指定数量的由其实例 ID 标识的 GameObject 的实例,并使用新 GameObject 及其 Transform 组件的实例 ID 填充 NativeArray。
SetGameObjectsActive激活或停用由实例 ID 标识的多个 GameObject。

继承的成员

属性

hideFlags对象是否应该隐藏、与场景一起保存或由用户修改?
name对象的名称。

公共方法

GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议使用 Destroy 代替。
DontDestroyOnLoad在加载新场景时不要销毁目标对象。
FindAnyObjectByType检索任何活动的已加载 Type type 对象。
FindFirstObjectByType检索第一个活动的已加载 Type type 对象。
FindObjectsByType检索所有已加载 Type type 对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用以查看它们是否引用同一个对象。