Noticias

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

SceneManager.MoveGameObjectToScene()

Iniciado por ftejada, Diciembre 11, 2015, 03:09:39 AM

Tema anterior - Siguiente tema
Hola a todos!! tengo una duda...Con la funcion SceneManager.MoveGameObjectToScene() se puede  pasar un gameobject de una escena a otra a partir de ahora con Unity 5.3. El problema está en que no encuentro la manera de poder pasarle a la funcion la escena que quiero. No se como almacenar todas las escenas que tengo creadas en variables de tipo Scene (que es el segundo parametro que te pide dicha funcion)
SceneManager.MoveGameObjectToScene(GameObject go, Scene scene);
He mirado la documentacion y no encuentro ninguna funcion para poder almacenar la escena que quiero en una variable Scene. Y estoy algo atascado.¿Cómo podría hacerlo? Saludos y gracias por adelantado
 

viendo los miembros de esa clase de monodevelop hay unos que dan la escena por nombre, índice o por la ruta entre los assets, echales un ojo:Unit***itor.SceneManagement.EditorSceneManager.GetSceneByNameUnit***itor.SceneManagement.EditorSceneManager.GetSceneAtUnit***itor.SceneManagement.EditorSceneManager.GetSceneByPath 

Diciembre 11, 2015, 01:47:16 PM #2 Ultima modificación: Diciembre 11, 2015, 04:44:47 PM por ftejada
[quote author=Braltor date=1449804468" data-ipsquote="" data-cite="Braltor" class="ipsQuote">viendo los miembros de esa clase de monodevelop hay unos que dan la escena por nombre, índice o por la ruta entre los assets, echales un ojo:Unit***itor.SceneManagement.EditorSceneManager.GetSceneByNameUnit***itor.SceneManagement.EditorSceneManager.GetSceneAtUnit***itor.SceneManagement.EditorSceneManager.GetSceneByPath [/quote]Bueno yo he estado probando lo que idicabas y lo unico que consigo obtener es la escena actual que esta activa... y con:Obtengo un null en la variable scenes. Así que no puedo acceder a las otras escenas que tengo en el proyecto.... y que por ejemplo tambien tengo incluidas en el scenes in build... No se si hago algo mal....  Saludos

Diciembre 12, 2015, 10:49:20 AM #3 Ultima modificación: Diciembre 12, 2015, 10:49:55 AM por kaito
Podrías crear tu propio sistema para mover objetos entre escena. Por ejemplo, utilizando un DontDestroyOnLoad y activando/desactivando el GameObject según el escenario en curso.

Diciembre 12, 2015, 01:42:54 PM #4 Ultima modificación: Diciembre 12, 2015, 01:48:33 PM por ftejada
[quote author=kaito date=1449913760" data-ipsquote="" data-cite="kaito" class="ipsQuote">Podrías crear tu propio sistema para mover objetos entre escena. Por ejemplo, utilizando un DontDestroyOnLoad y activando/desactivando el GameObject según el escenario en curso.[/quote]Bueno lo estuve intentando como tú indicas pero no conseguí hacerlo...El tema está en que yo utilizaba esa función (DontDestroyOnLoad) en una escena, (escena_3), antes de ejecutar el SceneManager.loadScene("escenaCarga").En esta "escenaCarga" simplemente lo que hago es que aparezca un "cargando" intermitente mientras se carga la "escena_5" asincronicamente... Pero en esta "escenaCarga" no vuelvo a utilizar el DontDestroyOnLoad. ¿Puede ser por eso por lo que mi gameobject no llega de la escena_3 a la escena_5 sin destruirse?.De todos modos voy a probar esto que acabo de decir, pero estoy fuera y hasta el lunes quizas no pueda. Asi que si me puedes solventar dicha duda te lo agradecería... Por otro lado y volviendo a la nueva interface de codigo de Unity 5.3. el SceneManager y EditorSceneManager te provee de ciertas funciones para obtener scenas pero solo si ya están incluidas previamente de algun modo en el SceneManager o 

A ver... al final he podido probar alguna cosa y comento lo que he averiguado....He vuelto a utilizar el DontDestroyOnLoad como me dijo kaito. Anteriormente cuando lo probe el otro dia no me funcionaba porque el gameobject que quieras que no se destruya en escena, al parecer tiene que estar en la raiz de la Hierarchy. Es decir, si es un hijo de otro gameobject, parece que tambien lo destruye. Por supuesto si ese gameobject que quireres que no sea destruido tiene hijos asociados a el, no se destruyen.En la documentación de DontDestroyOnLoad no he visto que este detalle tan importante esté reflejado, asi que da lugar a errores como me ha pasado a mi. En la documentación referente a la funcion
MoveGameObjectToScene
si viene reflejado que el gameobject debe estar en la raiz de la Hierarchy. Por eso me dió por hacer la prueba con DontDestroyOnLoad(). Pero aun sigo estando atrancado a la hora de porder acceder a las escenas que tengo en mi proyecto desde el sceneManager o editorSceneManager... ¿Alguien sabe como?? Saludos

Etiquetas: