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

Object

UnityEngine 中的类

/

实现于:UnityEngine.CoreModule

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

描述

所有 Unity 可引用对象的基类。

UnityEngine.Object 是所有内置 Unity 对象的基类。自定义 Unity 对象类型可以通过从 MonoBehaviourScriptableObjectScriptedImporter 等类型派生新类来在脚本中定义。

您创建的任何从 Object 派生的公共变量都将在检查器中显示为一个下拉目标,允许您从 GUI 设置值。

通常,脚本将使用从该类派生的类型,例如 GameObjectMaterialMesh,以便将这些类型的特定属性和方法暴露给脚本。但是,一些 API 被设计为与任何 Unity 对象一起工作,因此 Object 在其签名中显示为一个类型。例如 Resources.LoadAllEditorJsonUtility.ToJsonSerializedObject.

有时,Object 的实例可能处于分离状态,其中没有底层本机对象。如果实例引用已被销毁的本机对象,或者丢失的 Asset 或丢失的类型,就会发生这种情况。分离的物体保留其 InstanceID,但该物体不能用于调用方法或访问属性。处于此状态的物体将显示为 null,因为对运算符 ==、运算符 != 和 Object.bool 的特殊实现。由于该物体并非真正为 null,因此对 Object.ReferenceEquals(myobject, null) 的调用将返回 false。

不能将 空条件运算符 (?.) 和 空合并运算符 (??) 与 Unity 对象一起使用,因为它们不能被重写以使分离的物体对象与 null 相同。只有在确定要检查的物体永远不会处于分离状态的情况下,才能安全地在您的脚本中使用这些运算符。

属性

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

公共方法

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

静态方法

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

运算符

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