Unity 6.3
0 онлайн 21 гостей 3 в системе
Вход

PrefabUtility

класс в UnityEditor

Описание

Вспомогательный класс для любых операций, связанных с префабами.

// This script creates a new menu item Examples>Create Prefab in the main menu.
// Use it to create Prefab(s) from the selected GameObject(s).
// It is placed in the root Assets folder.
using System.IO;
using UnityEngine;
using UnityEditor;

public class Example { // Creates a new menu item 'Examples > Create Prefab' in the main menu. [MenuItem("Examples/Create Prefab")] static void CreatePrefab() { // Keep track of the currently selected GameObject(s) GameObject[] objectArray = Selection.gameObjects;

// Loop through every GameObject in the array above foreach (GameObject gameObject in objectArray) { // Create folder Prefabs and set the path as within the Prefabs folder, // and name it as the GameObject's name with the .Prefab format if (!Directory.Exists("Assets/Prefabs")) AssetDatabase.CreateFolder("Assets", "Prefabs"); string localPath = "Assets/Prefabs/" + gameObject.name + ".prefab";

// Make sure the file name is unique, in case an existing Prefab has the same name. localPath = AssetDatabase.GenerateUniqueAssetPath(localPath);

// Create the new Prefab and log whether Prefab was saved successfully. bool prefabSuccess; PrefabUtility.SaveAsPrefabAssetAndConnect(gameObject, localPath, InteractionMode.UserAction, out prefabSuccess); if (prefabSuccess == true) Debug.Log("Prefab was saved successfully"); else Debug.Log("Prefab failed to save" + prefabSuccess); } }

// Disable the menu item if no selection is in place. [MenuItem("Examples/Create Prefab", true)] static bool ValidateCreatePrefab() { return Selection.activeGameObject != null && !EditorUtility.IsPersistent(Selection.activeGameObject); } }

Статические свойства

Свойство Описание
prefabInstanceUpdatedUnity вызывает этот метод автоматически, когда экземпляры Префаб в Scene были обновлены.

Статические методы

Метод Описание
ApplyAddedComponentПрименяет добавленный компонент к ассету Префаб на указанном пути ассета.
ApplyAddedGameObjectПрименяет добавленный GameObject к ассету Префаб на указанном пути ассета.
ApplyAddedGameObjectsПрименяет добавленный GameObjects к ассету Префаб на указанном пути ассета.
ApplyObjectOverrideПрименяет все переопределенные свойства на компоненте экземпляра Префаб или GameObject к ассету Префаб в заданном пути ассета.
ApplyPrefabInstanceПрименяет все переопределения экземпляра Префаб к его ассету Префаб.
ApplyPrefabInstancesПрименяет все переопределения из списка экземпляров Префаб к их Ассетам Префаб.
ApplyPropertyOverrideПрименяет одно переопределенное свойство на экземпляре Префаб к ассету Префаб в заданном пути ассета.
ApplyRemovedComponentУдаляет компонент из ассета Префаб, в котором он находится.
ApplyRemovedGameObjectУдаляет GameObject из исходного ассета Префаб.
ConvertToPrefabInstanceПреобразуйте обычный экземпляр GameObject в экземпляр Префаб с помощью предоставленного корневого объекта Префаб Asset.
ConvertToPrefabInstancesПреобразовать массив из GameObjects в Префаб экземпляров заданного Префаб ассета.
FindAllInstancesOfPrefabПолучает корень GameObjects для всех экземпляров ассета Префаб с корнем prefabRoot, найденных во всех загружаемых сценах. Если prefabRoot не является действительным корнем ассета Префаб GameObject, выводится ArgumentException.
GetAddedComponentsПолучает список объектов PrefabUtility.AddedComponent, которые содержат информацию о добавленных переопределениях компонентов в экземпляре Префаб.
GetAddedGameObjectsПолучает список объектов PrefabUtility.AddedGameObject, которые содержат информацию о добавлении GameObjects на экземпляре Префаб.
GetCorrespondingObjectFromOriginalSourceПолучает объект источника для заданного объекта.
GetCorrespondingObjectFromSourceПолучает соответствующий исходный объект ассета префаб заданного GameObject или компонента, или null, если он не может быть найден.
GetCorrespondingObjectFromSourceAtPathПолучает соответствующий объект заданного объекта из заданного пути Префаб Asset.
GetIconForGameObjectПолучает значок для заданного GameObject.
GetNearestPrefabInstanceRootПолучает GameObject, который является корнем ближайшего экземпляра Префаб, частью которого является объект.
GetObjectOverridesПолучает список объектов с информацией о переопределениях объектов в экземпляре Префаб.
GetOriginalSourceRootWhereGameObjectIsAddedИспользуйте этот метод, чтобы найти корень Префаб Asset, в котором изначально был добавлен экземпляр Префаб или объект Префаб Asset.
GetOutermostPrefabInstanceRootПолучает GameObject, который является корнем самого внешнего экземпляра Префаб, частью которого является объект.
GetPrefabAssetPathOfNearestInstanceRootПолучает путь ассета к ближайшему корню экземпляра Префаб, частью которого является указанный объект.
GetPrefabAssetTypeВозвращает значение перечисления, указывающее тип ассета Prefab: обычный префаб, префаб модели или вариант префаба.
GetPrefabInstanceHandleПолучает объект PrefabInstance для внешнего экземпляра Префаб, частью которого является указанный объект.
GetPrefabInstanceStatusОпределяет, правильно ли экземпляр Префаб подключен к своему ассету.
GetPropertyModificationsВозвращает все модификации, которые были применены к конкретному экземпляру префаб в сцене или модификации для экземпляра префаб в ассете.
GetRemovedComponentsВозвращает список объектов с информацией об удаленных переопределениях компонентов в экземпляре Префаб.
GetRemovedGameObjectsВозвращает список объектов с информацией об удаленных переопределениях GameObject в экземпляре Префаб.
HasManagedReferencesWithMissingTypesОпределяет, содержит ли ассет объекта Префаб какие-либо типы MonoBehaviours с отсутствующими типами SerializeReference.
HasPrefabInstanceAnyOverridesВозвращает true, если у данного экземпляра Префаб есть какие-либо переопределения.
InstantiatePrefabСоздает экземпляр заданной Префаб в заданной Scene.
IsAddedComponentOverrideВозвращает true, если указанный компонент добавлен в экземпляр префаба в виде переопределения.
IsAddedGameObjectOverrideВозвращает true, если указанный GameObject добавлен в экземпляр префаба как дочерний в виде переопределения.
IsAnyPrefabInstanceRootЯвляется ли GameObject корнем любого экземпляра Префаб?
IsDefaultOverrideВозвращает true, если указанное изменение считается переопределением по умолчанию.
IsOutermostPrefabInstanceRootВозвращает true, если указанный GameObject является внешним корнем экземпляра Префаб.
IsPartOfAnyPrefabВозвращает true, если заданный объект является частью объекта Префаб Asset или экземпляра Префаб.
IsPartOfImmutablePrefabВозвращает true, если заданный объект является частью Префаб, который не может быть изменён.
IsPartOfModelPrefabВозвращает true, если заданный объект является частью объекта Model Префаб или экземпляра Model Префаб.
IsPartOfNonAssetPrefabInstanceВозвращает true, если заданный объект является частью экземпляра Префаб, который не является частью ассета Префаб.
IsPartOfPrefabAssetВозвращает true, если заданный объект является частью ассета Префаб.
IsPartOfPrefabInstanceВозвращает true, если заданный объект является частью экземпляра Префаб.
IsPartOfPrefabThatCanBeAppliedToВозвращает true, если заданный объект является частью Префаб, к которому могут быть применены переопределения.
IsPartOfRegularPrefabВозвращает true, если заданный объект является частью обычного экземпляра Префаб или Префаб Asset.
IsPartOfVariantPrefabВозвращает true, если заданный объект является частью Префаб Variant Asset или Префаб Variant instance.
IsPrefabAssetMissingВозвращает true, если заданный объект является частью экземпляра Префаб, но исходный ресурс отсутствует.
LoadPrefabContentsЗагружает ассет Префаб на заданном пути в изолированный Scene и возвращает корень GameObject из Префаб.
LoadPrefabContentsIntoPreviewSceneЗагружает ресурс Префаб из заданного пути в заданную сцену предварительного просмотра.
MergePrefabInstanceПринуждает экземпляр Префаб к слиянию с изменениями из ассета Префаб.
RecordPrefabInstancePropertyModificationsПриводит к записи изменений, внесенных в экземпляр Префаб.
RemoveUnusedOverridesЭтот метод идентифицирует и удаляет все неиспользуемые переопределения из списка корней экземпляра Префаб. Подробнее см. в руководстве Неиспользуемые переопределения.
ReplacePrefabAssetOfPrefabInstanceЗамените ассет Префаб для экземпляра Префаб, который существует в Scene, или для вложенного экземпляра Префаб внутри другого Префаб.
ReplacePrefabAssetOfPrefabInstancesЗамените ассет Префаб на массив экземпляров Префаб, существующих в сценах, или на вложенные экземпляры Префаб внутри другого Префаб.
RevertAddedComponentУдаляет этот добавленный компонент из экземпляра Префаб.
RevertAddedGameObjectУдаляет этот добавленный GameObject из экземпляра Префаб.
RevertObjectOverrideВозвращает все переопределенные свойства компонента экземпляра Префаб или GameObject.
RevertPrefabInstanceОтмена всех переопределений в экземпляре Префаб.
RevertPropertyOverrideСбрасывает одно переопределение свойства у экземпляра Prefab.
RevertRemovedComponentДобавляет этот удаленный компонент обратно в экземпляр Префаб.
RevertRemovedGameObjectДобавляет этот удаленный GameObject обратно в экземпляр Префаб.
SaveAsPrefabAssetСоздает объект Префаб на указанном пути из указанного объекта GameObject, включая любой дочерний объект в Scene без модификации входных объектов.
SaveAsPrefabAssetAndConnectСоздает объект Префаб на указанном пути из указанного объекта GameObject, включая любых детей в Scene и в то же время превращает указанный объект GameObject в экземпляр нового объекта Префаб.
SavePrefabAssetСохраняет версию существующего Префаб ассета, который существует в памяти, обратно на диск.
SetPropertyModificationsНазначает набор объектов PropertyModification целевому экземпляру Префаб относительно его исходного ассета Префаб.
UnloadPrefabContentsОсвободить содержимое из Префаб, ранее загруженного с LoadPrefabContents из памяти.
UnpackAllInstancesOfPrefabРаспаковывает все экземпляры указанного корневого GameObject ассета Prefab во всех открытых сценах, заменяя каждый экземпляр содержимым ассета Prefab и сохраняя при этом все значения переопределений.
UnpackPrefabInstanceРаспаковывает указанный экземпляр префаба, заменяя его содержимым ассета Prefab и сохраняя при этом все значения переопределений.
UnpackPrefabInstanceAndReturnNewOutermostRootsРаспаковывает указанный экземпляр Префаб, используя поведение, указанное unpackMode.

Мероприятия

Мероприятие Описание
prefabInstanceAppliedUnity вызывает этот метод автоматически после того, как был применен экземпляр Префаб.
prefabInstanceApplyingUnity вызывает этот метод автоматически перед применением экземпляра Префаб.
prefabInstanceRevertedUnity вызывает этот метод автоматически после того, как экземпляр Префаб был возвращён.
prefabInstanceRevertingUnity автоматически вызывает этот метод перед возвратом экземпляра Префаб.
prefabInstanceUnpackedUnity вызывает этот метод автоматически после того, как экземпляр Префаб будет распакован.
prefabInstanceUnpackingUnity автоматически вызывает этот метод перед распаковкой экземпляра Префаб.

Делегаты

делегат Описание
PrefabInstanceUpdatedДелегат для метода, который вызван после обновления экземпляров Префаб в Scene.