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

PrefabUtility.UnpackPrefabInstance

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static void UnpackPrefabInstance(GameObject instanceRoot, PrefabUnpackMode unpackMode, InteractionMode action);

参数

instanceRoot 要解包的预制体实例的根。
unpackMode 是要解包最外层的根,还是全部解包。
action 要用于此操作的交互模式。

说明

解包给定的预制体实例,使其被预制体资源的内容替换,同时保留所有重写值。

给定的对象必须是预制体实例的根。

预制体资源的内容是您在预制体模式下打开它时看到的对象。使用 OutermostRoot 的 PrefabUnpackMode 进行解包会用该内容替换预制体实例。使用 Completely 的 PrefabUnpackMode 进行解包还将解包解包内容中包含的任何预制体实例,因此最终结果将仅仅是常规 GameObject,而不是任何预制体实例。

常规预制体或模型预制体的内容在根部始终有一个常规 GameObject,因此解包其中任何一个都会在预制体实例之前的根部留下一个常规 GameObject。

预制体变体的的内容在根部有一个基本预制体的实例,因此使用 OutermostRoot 的 PrefabUnpackMode 来解包预制体变体,就会在预制体变体实例之前的根部留下一个基本预制体的实例。

如果给定的对象不是预制体实例的根,或者它属于预制体资源,则解包会引发 ArgumentException。这不包括在预制体模式下打开的预制体内容。

InteractionMode 确定此操作是否应该可以撤消。