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

PrefabUtility.GetPrefabInstanceHandle

建议更改

成功!

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

关闭

提交失败

由于某种原因,无法提交您建议的更改。请在几分钟后重试。感谢您花时间协助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Object GetPrefabInstanceHandle(Object instanceComponentOrGameObject);

参数

instanceComponentOrGameObject 来自 Prefab 实例的对象。

返回值

Object Prefab 实例句柄。

描述

检索提供对象所属的最外层的 Prefab 实例的 PrefabInstance 对象。

如果提供对象不是 Prefab 实例的一部分,则函数将返回 null。

您可以通过比较对象使用此函数来检查两个不同的 GameObject 或 Component 是否属于同一个 Prefab 实例。但它不能用于比较 Prefab 实例和它的一部分的嵌套 Prefab,因为该函数返回对象所在的最外层 Prefab 实例的句柄。但是,可以使用它将已添加的子 Prefab 实例与此子实例已添加到的父 Prefab 实例进行比较,因为已添加的对象不属于它已添加到的 Prefab 实例。

该函数适用于场景中的 Prefab 实例和 Prefab 资源中的 Prefab 实例。如果该函数为 Prefab 资源中的对象返回有效的 Prefab 实例句柄,则这意味着该对象属于 Prefab 实例(它是该资源中的嵌套 Prefab 或 Prefab 变体的基本 Prefab 实例)。