Объявление
public static void UnpackPrefabInstance(GameObject instanceRoot, PrefabUnpackMode unpackMode, InteractionMode action);Параметры
instanceRoot | Корень экземпляра Prefab для распаковки. |
unpackMode | Нужно ли распаковывать самый внешний корень или распаковывать полностью. |
action | Режим взаимодействия, используемый для этого действия. |
Описание
Распаковывает данный экземпляр Prefab, чтобы он был заменен содержимым Prefab Asset, сохраняя при этом все значения переопределения.
Данный объект должен быть корнем экземпляра Prefab.
Содержимое Prefab Asset — это объекты, которые вы видите, когда открываете их в Prefab Mode. Распаковка с PrefabUnpackMode OutermostRoot заменит экземпляр Prefab этим содержимым. Распаковка с PrefabUnpackMode, равным Completely, также распаковывает все экземпляры Prefab, которые являются частью распакованного содержимого, так что конечным результатом являются не что иное, как обычные GameObjects, а не экземпляры Prefab.
Содержимое обычного префаба или префаба модели всегда имеет в корне обычный игровой объект, поэтому распаковка одного из них оставит обычный игровой объект в корне, где раньше был экземпляр префаба.
Содержимое варианта префаба содержит экземпляр базового префаба в корне, поэтому при распаковке варианта префаба с параметром PrefabUnpackMode, равным OutermostRoot, экземпляр базового префаба останется там, где раньше находился экземпляр варианта префаба.
При распаковке возникает исключение ArgumentException, если данный объект не является корнем экземпляра Prefab или является частью Prefab Asset. Сюда не входит содержимое Prefab, открытое в Prefab Mode.
InteractionMode определяет, должно ли действие быть отменено.