Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Packobilly en Febrero 04, 2018, 04:36:45 PM

Título: Audios
Publicado por: Packobilly en Febrero 04, 2018, 04:36:45 PM
Hola a todos. Tengo un trigger que detecta el comienzo de un audio y otro que hace lo mismo con otro audio. 
 
Cómo detener uno para que empiece otro?
 
Estoy en una encrucijada. 
 
Gracias!!
Título: Audios
Publicado por: FNP en Febrero 04, 2018, 05:54:41 PM
No entiendo bien la pregunta, pero si ya sabes que comienza uno y quieres parar el otro, ¿no sería algo asi?
 
Presupongo que hay un objeto que contiene un AudioSource con un clip y que lo quieres parar desde otro.
 

// Comienza un audio, asi que paro el otro.
AudioSource audioAParar;
AudioAParar = ObjetoQueContieneElAudio.GetComponent<AudioSource>();
 
AudioAParar.Stop();


 
Título: Audios
Publicado por: Packobilly en Febrero 04, 2018, 06:39:24 PM
Voy a probar eso. 
 
Gracias, FNP. 
Título: Audios
Publicado por: Packobilly en Febrero 04, 2018, 09:44:00 PM
Básicamente lo que intento es parar un audio que activé con un script desde otro script. 
 
Y desde éste último activar un audio nuevo cuando entro en el nuevo trigger. 
Título: Audios
Publicado por: lightbug en Febrero 04, 2018, 11:12:29 PM
Cita de: Packobilly date=1517758605Cómo detener uno para que empiece otro?
   


Cualquier cosa que quieras hacer con audios involucra tener una referencia y manejar el "AudioSource", (hay formas más prolijas de hacerlo con managers y todo eso...). Podés hacer algo como esto (aunque no me queda bien en claro si es esto lo que querés):
 
 
 

//Se supone que este objeto tiene un audioSource y se mete al trigger (?)
AudioSource esteAudio;   
//Arrastras el GameObject directamente, (solo te reconoce el componente AudioSource) del otro objeto
// lo mismo se aplica para el otro
public AudioSource aquelAudio;
void Awake(){
esteAudio = GetComponent<AudioSource>();
}
void OnTriggerEnter(....)
{
...
if(seDaloQuese Tenga que dar)
{         
   if(aquelAudio.isPlaying)
            aquelAudio.Stop();
     
         esteAudio.Play();
}

}

 
Para futuras consultas, fijate que es todo tan fácil como irte al manual y ver todo lo que el componente te brinda:
 
https://docs.unity3d.com/ScriptReference/AudioSource.html (https://docs.unity3d.com/ScriptReference/AudioSource.html)
 
Y si sabés manejar triggers ya tenés todo lo que necesitas.
 
Saludos
Título: Audios
Publicado por: Packobilly en Febrero 06, 2018, 06:34:38 AM
Exactamente era eso y funciona de maravilla. Mil gracias, Lightbug!