所有可以在场景中存在的对象的基类。向 GameObject 添加组件以控制其外观和行为。
GameObject
是 Unity 中的基本对象类型。使用 GameObject
来表示项目中的所有内容,包括角色、道具和场景。 GameObject
充当功能性 组件 的容器,这些组件决定了 GameObject 的外观和行为。
任何从 MonoBehaviour 派生的脚本都可以作为组件添加到 GameObject
中。使用 MonoBehaviour
代码中的 Component.gameObject 属性来访问组件所附加的 GameObject
。MonoBehaviour
的 事件函数(例如常规的每帧 MonoBehaviour.Update
)允许您使对象对事件做出响应。为了接收这些事件回调,GameObject
必须在场景中处于活动状态,这意味着 activeSelf
和 activeInHierarchy
属性都必须为 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。
activeInHierarchy | GameObject 在场景层次结构中的活动状态。如果处于活动状态,则为 true,如果处于非活动状态,则为 false。(只读) |
activeSelf | GameObject 的本地活动状态。如果处于活动状态,则为 true,如果处于非活动状态,则为 false。(只读) |
isStatic | GameObject 是否为其设置了任何静态编辑器标志。 |
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。 |
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 == | 比较两个对象引用以查看它们是否引用同一个对象。 |