Noticias

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

[Resuelto] Corregir duplicación objeto por DontDestroyOnLoad

Iniciado por SrDeriko, Abril 17, 2016, 02:00:30 PM

Tema anterior - Siguiente tema
Abril 17, 2016, 02:00:30 PM Ultima modificación: Abril 17, 2016, 03:37:40 PM por SrDeriko
Buenas,Expongo mi situación: Tengo un GameObject que actúa como Manager de sonido. Este se sitúa en la escena de portada del juego. Hasta aquí todo bien. Mi problema surge debido a que quiero que ese sonido se mantenga también al cambiar de escena, por lo que uso un DontDestroyOnLoad(transform.gameObject) pero al perder el juego, automáticamente carga la escena de portada, y el objeto aparece doble por lo que el sonido se escucha doble, ya que el objeto se ha creado otra vez en la escena que ya estaba.Me gustaría alguna idea sobre como podría corregir este error.Un saludo.

La solución sencilla? Entiendo que el manager de sonido es una instancia estática. Pues entonces comprueba que no esté en play el sonido y no lo vuelvas a activar. 

[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35670" data-ipsquote-contentcommentid="129791 date=1460895902]La solución sencilla? Entiendo que el manager de sonido es una instancia estática. Pues entonces comprueba que no esté en play el sonido y no lo vuelvas a activar. [/quote]No comprendo exactamente a que te refieres. El problema es que al volver a la escena donde está el gameObject que quiero mantener en las otras escenas, aparece doble. Es decir dos ManagerSonido

Abril 17, 2016, 02:46:20 PM #3 Ultima modificación: Abril 17, 2016, 02:47:35 PM por leocub58
[quote author=SrDeriko" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35670" data-ipsquote-contentcommentid="129793">No comprendo exactamente a que te refieres. El problema es que al volver a la escena donde está el gameObject que quiero mantener en las otras escenas, aparece doble. Es decir dos ManagerSonido[/quote]A ver, yo lo que haría es en el Start
//Si no encuentra el objeto con nombre "NombreDelManagerSonido"

     Instantiate(objetosondio, transform.position, transform.rotation);  //Instancia el prefab de ManagerSonido, éste prefab debe tener un script con DontDestroyOnLoad

}
si encuentra el objeto no se duplica, y si no lo encuentra lo crea. 

No lo acabo de entender. El gameObject duplicado es el que tiene el DontDestroyOnLoad, y entonces no te funciona esto último? O el manager de sonido tiene el DontDOL e instancias otra vez desde el manager el sonido?



[quote author=iRobb" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35670" data-ipsquote-contentcommentid="129805">Y como dice http://unityspain.com/profile/23667-gsg3d/?do=hovercard" data-mentionid="23667" href="<___base_url___>/profile/23667-gsg3d/ date=1460932901]@GSG3D. Ya está resuelto? Al final qué ha sido?[/quote]Le sirvió lo que yo le dije. Él tenía un objeto con dontdestroyonload pero el objeto no se instanciaba sino que ya estaba en la escena del menu, al volver al menu porqe mueres se duplica el objeto. Yo le enseñé a instanciarlo si no encuentra el objeto con ese nombre. Si lo encuentra no lo instancia.

Etiquetas: