Smart Reemplazo es un complemento de Unity que le ayuda a restaurar los enlaces prefabricados rotos. Además de eso, también puede reemplazar prefabricados en la escena con prefabricados similares que contienen los mismos scripts sin perder ningún cambio u referencia de objetos.
Para usar el complemento, se requiere que la versión .NET .NET se establezca para su proyecto. De lo contrario no se compilará . Puede cambiar la versión de .NET a través de: File -> Build settings -> Other settings -> Configuration -> Scripting Runtime Version -> .NET 4.x Equivalent
Después de descargar e instalar el paquete, puede abrir la ventana de reemplazo inteligente navegando a Tools -> Replace prefab...
Los siguientes ejemplos mostrarán los principales casos de uso del complemento. También hay un video en YouTube que explica el complemento de manera más vívida.

Para restore a prefab link de un objeto de escena, primero arrastre el objeto de la escena al campo correspondiente de la ventana. A continuación, encuentre la prefabricación original en la ventana del Proyecto Unity y déjela en el campo fresh prefab .
En Transfer component values puede seleccionar todos los componentes que pueden tener cambios que desea preservar. Actualmente, la configuración de los componentes de la Unidad no es compatible, con la excepción de los valores transform .
Después de realizar esta configuración, puede presionar Replace y el enlace prefabricado se restaurará sin perder los cambios que ha realizado en su objeto en la escena.
A menudo en el desarrollo de juegos, se crean prefabricas ficticias para probar una funcionalidad particular de un juego Elemt. En las últimas etapas del desarrollo del juego, se creará una mejor versión de este botón, con modelos más bonitos, texturas, sombreadores, etc.
Entonces, si tiene un nivel con solo las prefabricas ficticias, pero desea reemplazarlos con su nueva y mejor versión, Smart. Las reemplazos pueden ayudarlo.
Las imágenes de ejemplo a continuación muestran una escena con un botón y una puerta. El botón tiene un script llamado Button Click que contiene una referencia al objeto de la puerta, para que pueda abrir o cerrar la puerta cuando se hace clic.

También hay otro botón prefabricado, como puede ver en la vista del proyecto, llamado Button 1 . Se ve un poco diferente, pero también contiene el componente ButtonClick y, por lo tanto, se puede usar como nuestro botón actual. Este es un buen candidato para replace reemplazo, por lo que primero dejamos caer nuestro objeto de escena en la ventana Smart.

El botón ha sido reemplazado con éxito y aún tiene la referencia a la puerta, ¡así que todavía funciona!
Al igual que esta, todas las configuraciones de todos los componentes se pueden mantener durante el reemplazo, como valores integer , colors , strings , etc.
La Fresh prefab no necesita tener la misma jerarquía de objetos que el scene object ya que es inteligente. La replace solo se preocupa por la intersección de los componentes (ver limitaciones para obtener más información).
¿Qué tal si reemplazamos la puerta ahora? Esto parece un poco complicado, ya que la puerta no ahora se hace referencia por el botón. Sin embargo, Smart.Replace sí, cuando habilita las Transfer external references opciones.
El proceso es el mismo de nuevo. Primero seleccionamos el objeto de la escena y luego el prefabricado. Nuevamente, presionamos reemplazar y la puerta será reemplazada con otra prefabricación. Al mismo tiempo, se actualizará la referencia del botón a la puerta.
Smart.Replace buscará referencias de object y component externos al objeto que se reemplaza. Incluso buscará lists y arrays para posibles referencias y las actualizará como se describe.
Si tiene objetos similares de Mutiple en la escena que desea reemplazar, sería tedioso hacerlo uno por uno.
Smart.Replace ofrece búsqueda de objetos similares, por lo que podemos reemplazar cualquier cantidad de objetos a la vez. Primero seleccionamos cualquiera de los objetos en la escena y luego una prefabricación, para que podamos buscar objetos similares. Por defecto, no hay filtros, por lo que se muestran todos los objetos en la escena. La búsqueda por nombre es muy eficiente en los casos en que todos los objetos tienen nombres similares. También puede buscar componentes.
Si ahora presionamos reemplazar, vemos que todos los objetos se reemplazan a la vez. Si tuvieran referencias entre sí, también se habrían preservado.
Para que el complemento sea fácil de usar, tiene algunas limitaciones que debe conocer:
component intersection muestra componentes de unidad en aras de la integridad, sus valores actualmente no se pueden mantener. La única excepción es el componente transform que tiene su propia interfaz de usuario (ver más abajo).one component type per object . Si tiene múltiples componentes del mismo tipo en el objeto de su escena, solo se mantendrán los valores del primero. El resto será descartado.object reemplazado. Sin embargo, las referencias de objetos externos siempre apuntarán al objeto parent después del reemplazo. Puede contactarme en cualquier momento en [email protected].