所有 Unity 可引用对象的基类。
UnityEngine.Object 是所有内置 Unity 对象的基类。自定义 Unity 对象类型可以通过从 MonoBehaviour、ScriptableObject 和 ScriptedImporter 等类型派生新类来在脚本中定义。
您创建的任何从 Object 派生的公共变量都将在检查器中显示为一个下拉目标,允许您从 GUI 设置值。
通常,脚本将使用从该类派生的类型,例如 GameObject、Material 和 Mesh,以便将这些类型的特定属性和方法暴露给脚本。但是,一些 API 被设计为与任何 Unity 对象一起工作,因此 Object 在其签名中显示为一个类型。例如 Resources.LoadAll、EditorJsonUtility.ToJson 和 SerializedObject.
有时,Object 的实例可能处于分离状态,其中没有底层本机对象。如果实例引用已被销毁的本机对象,或者丢失的 Asset 或丢失的类型,就会发生这种情况。分离的物体保留其 InstanceID,但该物体不能用于调用方法或访问属性。处于此状态的物体将显示为 null,因为对运算符 ==、运算符 != 和 Object.bool 的特殊实现。由于该物体并非真正为 null,因此对 Object.ReferenceEquals(myobject, null) 的调用将返回 false。
不能将 空条件运算符 (?.) 和 空合并运算符 (??) 与 Unity 对象一起使用,因为它们不能被重写以使分离的物体对象与 null 相同。只有在确定要检查的物体永远不会处于分离状态的情况下,才能安全地在您的脚本中使用这些运算符。
GetInstanceID | 获取对象的实例 ID。 |
ToString | 返回对象的名称。 |
Destroy | 删除 GameObject、组件或资产。 |
DestroyImmediate | 立即销毁对象 obj。强烈建议您使用 Destroy 代替。 |
DontDestroyOnLoad | 加载新场景时不要销毁目标 Object。 |
FindAnyObjectByType | 检索任何已加载的 Type 类型的活动对象。 |
FindFirstObjectByType | 检索第一个已加载的 Type 类型的活动对象。 |
FindObjectsByType | 检索所有已加载的 Type 类型的对象列表。 |
Instantiate | 克隆对象 original 并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某个 GameObject 相关)的快照并返回 AsyncInstantiateOperation。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,以查看它们是否引用同一个对象。 |