PrefabUtility.ApplyPropertyOverride
Declaration
public static void ApplyPropertyOverride(SerializedProperty instanceProperty, string assetPath, InteractionMode action);Параметры
| Параметр | Описание |
|---|---|
| instanceProperty | SerializedProperty, представляющий свойство, которое будет применено. |
| assetPath | Путь ассета Префаб для применения. |
| действия | Режим взаимодействия для этого действия. |
Описание
Применяет одно переопределенное свойство на экземпляре Префаб к ассету Префаб в заданном пути ассета.
Этот метод позволяет применить одно измененное значение свойства к существующему объекту Префаб. Это зеркало Применить в редакторе, как это описано в разделе Применить переопределения к ассету префаб Для использования этого метода необходимо сначала изменить значение свойства в существующем экземпляре Префаб.
Измененные значения свойств в экземпляре Префаб являются типом Переопределение экземпляра. Применение изменённого значения свойства к префабу означает, что изменённое значение становится частью ассета Prefab и перестаёт быть переопределением в экземпляре префаба.
При применении измененного значения свойства к Префаб Ассет, в качестве параметра необходимо указать путь к ассету. Это объясняется тем, что в некоторых ситуациях существует несколько возможных целей для применения изменения. Например, если значение свойства было изменено на GameObject которое является частью вложенные Префаб, у вас может быть возможность применить изменение к внутреннему вложенному ассету Префаб или к внешнему корневому ассету Префаб. Поэтому, указывая путь ассета, вы ясно указываете Unity, к какому ассету Префаб должно быть применено изменение.
Более подробную информацию см. Переопределение экземпляров префаб.
Обратите внимание, что вы можете подать переопределение по умолчанию свойства этим методом — в отличие от других методов применения, которые не применяют переопределяющие свойства по умолчанию.
Если свойство является элементом массива, и соответствующий элемент массива не существует в Префаб, потому что массив там короче, ApplyPropertyOverride применяется ко всему массиву. Если InteractionMode установлено на UserAction, Unity показывает диалоговое окно, которое предоставляет опции продолжения или отмены.
Дополнительные ресурсы: PrefabUtility.ApplyAddedComponent, PrefabUtility.ApplyAddedGameObject, PrefabUtility.ApplyObjectOverride, PrefabUtility.ApplyRemovedComponent, PrefabUtility.ApplyPrefabInstance, PrefabUtility.ApplyRemovedGameObject.