Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

¿Copiar una escena y sus assets?

Iniciado por Nevercreature, Marzo 01, 2018, 09:54:54 AM

Tema anterior - Siguiente tema
¡Hola! Este es el primer post que abro desde mi presentación. La verdad es que me estoy haciendo muy bien a Unity, teniendo en cuenta que no soy programador y empecé hace relativamente poco.
 
Estoy haciendo un juego para Android y está quedando muy chulo. Me lo dicen hace unos meses y no me lo creo.
 
Tengo una duda. Prácticamente he terminado la primera fase del juego en 1 escena voy a comenzar a hacer la segunda. Realmente para hacer la segunda fase sólo tengo que coger la primera escena y cambiar algunos de sus assets. Concretamente sprites y música, y todo lo demás dejarlo igual.
 
La pregunta es: ¿Sabéis si puedo copiar una escena incluyendo una copia de todos sus assets? Me he dado cuenta que si copias una escena, sus assets, prefabs y demás siguen asociados a los de la escena original. Lo que yo necesito es que se haga una copia de todo.
 
Un ejemplo de mi "problema" sería que tengo prefabs de la escena 2 a los que lo único que quiero cambiar es el sprite con respecto al sprite de la escena 1. Y claro, me encuentro con el problema de que tengo que hacer el prefab desde cero, incluyendo las animaciones, los controladores, etc.
 
No se si me he explicado bien.
 
¡¡Gracias!!
 
Nevercreature

Cita de: Nevercreature date=1519894494La pregunta es: ¿Sabéis si puedo copiar una escena incluyendo una copia de todos sus assets? Me he dado cuenta que si copias una escena, sus assets, prefabs y demás siguen asociados a los de la escena original. Lo que yo necesito es que se haga una copia de todo.
   

Cita de: Nevercreature date=1519894494Un ejemplo de mi "problema" sería que tengo prefabs de la escena 2 a los que lo único que quiero cambiar es el sprite con respecto al sprite de la escena 1. Y claro, me encuentro con el problema de que tengo que hacer el prefab desde cero, incluyendo las animaciones, los controladores, etc.
   


Cada escena tiene sus gameObjects y en teoría son únicos, lo que se puede modificar son los recursos: texturas, materiales, prefabs, clips de audio, etc ... forman parte directa de los datos a usar  (si queres verlo así). Si copiás la escena1 en la escena2 (ctrl + D a escena1 y renombras "escena2") los gameobjects en cada escena son totalmente independientes, Seguramente estés teniendo problema con los Prefabs.
 
Cuando en una escena le ponés a un prefab "Apply" aplica los cambios a otros los prefabs, ya que si te fijás arriba en el inspector, cuando un gameObject es un prefab es un gameObject especial, que "escucha" a este recurso en particular.
 
OJO! si modificás el prefab desde el panel "Project" es equivalente a darle apply luego de cada cambio que hagas, es decir que todos se van a actualizar, en este escenario no tenés la "opción de aplicar", es automático.
 
--> Si querés desligar al gameObject del prefab (es decir que no sea una instancia de este prefab) andate a "GameObject/Break Prefab Instance". Importante, si a esta "instancia de prefab retirado" le hacés un cambio y le volvés a dar Apply, es como si volviera a convertirse en prefab y se lo aplica a todos! es decir la idea de hacer esto es que no escuche más a los demas.
 
PD: Si te mandás una cagada porque sin querer le diste a un Apply volve con Ctrl+Z nomás que vas bien
 
Saludos
 
 

¡Ah, vale! Entonces debería copiar la "Escena1" como "Escena2" y copiar la carpeta donde tengo los prefabs de "Prefabs1" a "Prefabs2" y cambiar las asociaciones tanto de la "Escena2" con los nuevos prefabs de la carpeta "Prefabs2" como entre los propios prefabs de esta carpeta.
 
Todo esto teniendo en cuenta que los gameobjects de cada escena son únicos y que no tengo que cambiar los scripts (porque en cada gameobject o prefab funcionan de manera independiente).
 
Muchas gracias!!

Cita de: Nevercreature date=1519994881¡Ah, vale! Entonces debería copiar la "Escena1" como "Escena2" y copiar la carpeta donde tengo los prefabs de "Prefabs1" a "Prefabs2" y cambiar las asociaciones tanto de la "Escena2" con los nuevos prefabs de la carpeta "Prefabs2" como entre los propios prefabs de esta carpeta.
   


Claro, en principio, aunque tenés quizás mejores formas de hacerlo dependiendo de si tenés 2 o 100 niveles y querés que cada nivel sea único. Si fuera el caso de los 100 niveles podrías optar por poner un script en cada prefab (un solo tipo), que dependiendo de la escena actual cambiara solito su sprite por uno ya definido en una base de datos, no solo sprite, cualquier cosa que se te ocurra.
 
 

¡Hola otra vez! Ya lo he hecho y ha sido bastante sencillo. Es cierto que lo que he tenido que hacer es copiar todos los prefabs que quería adaptar a la "Escena2" como prefabs nuevos y adaptarlos (cambiar parámetros, nombres y algún que otro script). Aunque lo más duro ha sido adaptar las animaciones y sus controladores .
 
¡Gracias de nuevo!

Etiquetas: