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