Noticias

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

Ayuda implementar sonido

Iniciado por infotronica, Febrero 28, 2017, 06:16:59 PM

Tema anterior - Siguiente tema
Febrero 28, 2017, 06:16:59 PM Ultima modificación: Marzo 02, 2017, 10:25:38 AM por pioj
Muy buenas, actualmente tengo Unity 5.5.1 y necesito hacer algo que en teoría es muy simple y no pensé que me daría tantos problemas..
 
Lo que necesito hacer es que cuando coja una nota, una llave, abra una puerta... etc.. que suene un sonido, he estado probando e intentándolo pero no consigo hacerlo funcionar.
 
Un saludo y Gracias!

Febrero 28, 2017, 06:50:13 PM #1 Ultima modificación: Febrero 28, 2017, 06:57:17 PM por ytinU
Cita de: infotronica date=1488302219Muy buenas, actualmente tengo Unity 5.5.1 y necesito hacer algo que en teoría es muy simple y no pensé que me daría tantos problemas..
   
   
      Lo que necesito hacer es que cuando coja una nota, una llave, abra una puerta... etc.. que suene un sonido, he estado probando e intentándolo pero no consigo hacerlo funcionar.
   
   
      Un saludo y Gracias!
   


Deberias decir que probaste para decirte que fallo y aprender, o tal vez te digamos exactamento lo que hiciste.. eso ahorra tiempo y evita confusiones.
 
pon  en el GO(gameobject) audiosource y en tu script creas una variable pública de tipo Audioclip
 

public AudioClip au; // debes poner el audio en el inspector
private void OnCollisionEnter(Collision s)// método de colisión puedes poner cualquier método y llamarlo donde tu quieras...
{
GetComponent<AudioSource>().PlayOneShot(au);// aqui se reproduce
}

 
 

Febrero 28, 2017, 06:57:33 PM #2 Ultima modificación: Marzo 02, 2017, 10:22:20 AM por pioj
Cita de: ytinU date=1488304213Deberias decir que probaste para decirte que fallo y aprender, o tal vez te digamos exactamento lo que hiciste.. eso ahorra tiempo y evita confusiones.
   
   
      pon  en el GO(gameobject) audiosource y en tu script creas una variable pública de tipo Audioclip
   
   

public AudioClip au; // debes poner el audio en el inspector
private void OnCollisionEnter(Collision s)// método de colisión puedes poner cualquier método y llamarlo donde tu quieras...
{
GetComponent<AudioSource>().PlayOneShot(su);// aqui se reproduce
}

   
       
   


Tienes razón ytinU, es mi primer post jaja, muchas gracias por tu respuesta, te digo lo que he estado probando:
 



   
       
   
   
      public var sonido: AudioClip;
   
   
      if(other.gameObject.tag=="Player"){if(Input.GetKeyDown("e")) //Cuando apriete "e" por lo cual por ejemplo leeré la nota...
   
   
      {
              var audio: AudioSource = GetComponent.<AudioSource>();
              audio.Play(sonido);
   
   
      }
   
   
       
   

[/quote]
 
Este código lo he sacado de la página de Unity donde podemos encontrar el manual.
 
También estuve probando cosas más simples como:
 
 



   
       
   
   
      var sonido:AudioClip;
   
   
      if(other.gameObject.tag=="Player"){if(Input.GetKeyDown("e")) //Cuando apriete "e" por lo cual por ejemplo leeré la nota...
   
   
      { }
   
   
       
   

[/quote]
 
     
 
Tienes razón ytinU, es mi primer post jaja, muchas gracias por tu respuesta, te digo lo que he estado probando:
 



   
       
   
   
      public var sonido: AudioClip;
   
   
      if(other.gameObject.tag=="Player"){if(Input.GetKeyDown("e")) //Cuando apriete "e" por lo cual por ejemplo leeré la nota...
   
   
      {
              var audio: AudioSource = GetComponent.<AudioSource>();
              audio.Play(sonido);
   
   
      }
   
   
       
   

[/quote]
 
Este código lo he sacado de la página de Unity donde podemos encontrar el manual.
 
También estuve probando cosas más simples como:
 
 



   
       
   
   
      var sonido:AudioClip;
   
   
      if(other.gameObject.tag=="Player"){if(Input.GetKeyDown("e")) //Cuando apriete "e" por lo cual por ejemplo leeré la nota...
   
   
      {
   
   
              audio.Play();//Me dan errores dice que es obsoleto
   
   
      }
   
   
   
   
       
   

[/quote]
 
En el código que me has enviado que significa lo que está entre paréntesis en cada línea? tanto "collision s" como "su" y por qué se utiliza PlayOneShot.
 
Muchas gracias, un saludo! 

Cita de: infotronica date=1488304653Tienes razón ytinU, es mi primer post jaja, muchas gracias por tu respuesta, te digo lo que he estado probando:
   
   
      public var sonido: AudioClip;
   
   
      if(other.gameObject.tag=="Player"){if(Input.GetKeyDown("e")) //Cuando apriete "e" por lo cual por ejemplo leeré la nota...
   
   
      {

              var audio: AudioSource = GetComponent.<AudioSource>();

              audio.Play(sonido);
   
   
      }
   
   
      Este código lo he sacado de la página de Unity donde podemos encontrar el manual.
   
   
      También estuve probando cosas más simples como:

       
   
   
      var sonido:AudioClip;
   
   
      if(other.gameObject.tag=="Player"){if(Input.GetKeyDown("e")) //Cuando apriete "e" por lo cual por ejemplo leeré la nota...
   
   
      {
   
   
       
   
   
      }
   
   
       
   


Vale... Primero te debes presentar a UnitySpain y después puedes poner tus dudas en los temas de Scripting, 2do el código que di deberia funcionar, si no entiendes algo pregunta, 3ero para poner código hay unos simbolos de menor- mayor clickeas ahí y pones el código.

Perdona, es que sin querer he contestado dos veces, decía que en el código que me has enviado que siginifica lo que está entre paréntesis en cada línea? tanto "collision s" como "su" y por qué se utiliza PlayOneShot, esa es mi última duda, muchas gracias.

Febrero 28, 2017, 07:25:31 PM #5 Ultima modificación: Febrero 28, 2017, 07:46:17 PM por ytinU
Cita de: infotronica date=1488305229Perdona, es que sin querer he contestado dos veces, decía que en el código que me has enviado que siginifica lo que está entre paréntesis en cada línea? tanto "collision s" como "su" y por qué se utiliza PlayOneShot, esa es mi última duda, muchas gracias.
   


No era una queja, era un Dato de como se postea 'correctamente' .....audioclip es un clip de audio...,oncollisionenter es un metodo que detcta los coliders con los que colisiona, el parentesis de oncollisionenter es una referencia a esos colliders, lo que esta dentro de las llaves getcomponent accede a un componente del mismo gameobject, estos simbolos '<>' son al tipo de componente que quieres acceder, si pones un punto despues este te mostrara una lista de los metodos,variables,etc del componente en este caso accedi a audiosource a un metodo playoneshot() que recibe como parametro un audioclip por eso es playoneshot(au) au (es el audioclip que declare al principio) este metodo hace que se reproduzca un sonido.
 
 

Cita de: ytinU date=1488305000Vale... Primero te debes presentar a UnitySpain y después puedes poner tus dudas en los temas de Scripting, 2do el código que di deberia funcionar, si no entiendes algo pregunta, 3ero para poner código hay unos simbolos de menor- mayor clickeas ahí y pones el código.
   


Ya, ya, no lo he interpretado como queja jaja, perfecto, me has solucionado mi duda, muchas gracias por tu brevedad y claridad.
 
Un saludo ytinU, gracias de nuevo! 

Etiquetas: