Smart Replus-это плагин Unity, который помогает вам восстановить разбитые ссылки на префабур. Кроме того, он также может заменить префабов в сцене аналогичными префабами, которые содержат те же сценарии, не теряя никаких изменений или ссылок на объекты.
Чтобы использовать плагин, для вашего проекта необходимо установить версию .NET .NET. В противном случае он не будет компилировать . Вы можете изменить версию .net через: File -> Build settings -> Other settings -> Configuration -> Scripting Runtime Version -> .NET 4.x Equivalent
После загрузки и установки пакета вы можете открыть окно Smart Replame, навигация на Tools -> Replace prefab...
В следующих примерах будут показаны основные варианты использования плагина. На YouTube также есть видео, которое более ярко объясняет плагин.

Чтобы restore a prefab link объекта сцены, сначала перетащите объект сцены в соответствующее поле окна. Затем найдите оригинальный Prefab в окне проекта Unity и бросьте его на поле fresh prefab .
Под Transfer component values вы можете выбрать все компоненты, которые могут иметь изменения, которые вы хотите сохранить. Настройки компонентов Unity в настоящее время не поддерживаются, за исключением значений transform .
После того, как эти настройки были сделаны, вы можете нажать на Replace , и ссылка на сборник будет восстановлена без потери изменений, которые вы внесли вашему объекту в сцене.
Часто в разработке игр фиктивные сбора создаются для проверки конкретной функции игры Elememt. На более поздних этапах разработки игры будет создана лучшая версия этой кнопки - с красивыми моделями, текстурами, шейдерами и так далее.
Так что, если у вас есть уровень только с фиктивными сборами, но вы хотите заменить их всеми новой, лучшей версией, Smart.Replace может помочь вам.
Примеры изображений ниже показывают сцену с кнопкой и дверью. Кнопка имеет кнопку сценария под названием Button Click , которая содержит ссылку на объект двери, поэтому он может открыть или закрыть дверь при нажатии.

Существует также еще одна кнопка, как вы можете видеть в представлении проекта, называемой Button 1 . Он выглядит немного по -другому, но также содержит компонент ButtonClick и поэтому может использоваться как наша текущая кнопка. Это хороший кандидат для замены, поэтому мы сначала бросаем наш объект сцены в окно Smart.Replace, затем лучшую кнопку Prefab, убедитесь, что ссылка на дверь будет поддерживаться после замены, а затем мы нажимаем replace .

Кнопка успешно была заменена и все еще имеет ссылку на дверь, так что она все еще работает!
Точно так же, все настройки всех компонентов могут поддерживаться во время замены, например, integer значения, colors , strings и так далее.
Fresh prefab не нуждается в той же иерархии объектов, что и scene object поскольку Smart.Replace заботится только о пересечении компонентов (см. Ограничения для получения дополнительной информации).
Как насчет того, чтобы заменить дверь сейчас? Это кажется немного сложным, так как дверь не сейчас ссылается на кнопку. Тем не менее, Smart.Replace делает, когда вы включите вариант Transfer external references .
Процесс снова тот же. Сначала мы выбираем объект сцены, а затем Prefab. Мы снова нажимаем замену, и дверь будет заменена еще одним сбором. В то же время, ссылка кнопки на дверь будет обновлена.
Smart.Replace будет искать внешние object и ссылки на component на замену объекта. Он даже будет поиск lists и arrays для возможных ссылок и будет обновлять их, как описано.
Если в сцене, которые вы хотите заменить, есть похожие объекты, которые вы хотите заменить, было бы утомительно делать это один за другим.
Smart.Replace предлагает поиск аналогичных объектов, поэтому мы можем заменить любое количество объектов одновременно. Сначала мы выбираем любой из объектов в сцене, а затем сборник - чтобы мы могли искать похожие объекты. По умолчанию нет фильтров, поэтому все объекты на сцене показаны. Поиск по имени очень эффективен в тех случаях, когда все объекты имеют аналогичные имена. Вы также можете искать компоненты.
Если мы сейчас нажимаем замену, мы видим, что все объекты заменяются сразу. Если бы у них были ссылки друг на друга, они также были бы сохранены.
Чтобы сделать плагин легким в использовании, он имеет некоторые ограничения, о которых вы должны знать:
component intersection показывает компоненты единства ради полноты, их значения в настоящее время не могут быть поддержаны. Единственным исключением является компонент transform , который имеет свой собственный пользовательский интерфейс (см. Ниже).one component type per object . Если у вас есть несколько компонентов одного и того же типа на вашем объекте сцены, будут сохранены только первые значения. Остальное будет отброшено.object будут поддерживаться. Однако ссылки на внешние объекты всегда будут указывать на parent объект после замены. Вы можете связаться со мной в любое время по адресу [email protected].