Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: neker92 en Enero 28, 2016, 02:44:03 AM

Título: ayuda con este SCRIPT
Publicado por: neker92 en Enero 28, 2016, 02:44:03 AM
hola amigos, hice este script para que el JUGADOR cada vez que recoge MONEDAS se reproduzca un sonido. bueno con este escript que hice SI FUNCIONA pero  el problema es que  una vez que haya chocado O recogido ese objeto(moneda) sigue reproduciendo el sonido solo al tocar la pantalla o al presionar SPACE (en Unity) a pesar de no recoger moneda :::  Y no logro encontar el problema  espero su ayudaaaEL JUEGO QUE ESTOY HACIENDO ES PARECIDO A LA TEMÁTICA DE FLAPPY BIRDmi script---------///////////////////////////////////////////////////////////////////////////////////////////////////////////////////7public class sonidoCoin : MonoBehaviour
{    
    public AudioClip audioCoin;
    private AudioSource thisaudio; 
    void Awake()
    {        thisaudio = this.GetComponent<AudioSource>();
    }
      public void OnTriggerEnter2D(Collider2D other)
    {        if(other.gameObject.tag == "Coin")
        {
            thisaudio.clip = audioCoin;
            thisaudio.Play();        }     
   }
}
Título: ayuda con este SCRIPT
Publicado por: ramunda en Enero 28, 2016, 09:57:26 AM
[quote author=neker92" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35024" data-ipsquote-contentcommentid="126566">hola amigos, hice este script para que el JUGADOR cada vez que recoge MONEDAS se reproduzca un sonido. bueno con este escript que hice SI FUNCIONA pero  el problema es que  una vez que haya chocado O recogido ese objeto(moneda) sigue reproduciendo el sonido solo al tocar la pantalla o al presionar SPACE (en Unity) a pesar de no recoger moneda :::  Y no logro encontar el problema  espero su ayudaaaEL JUEGO QUE ESTOY HACIENDO ES PARECIDO A LA TEMÁTICA DE FLAPPY BIRDmi script---------///////////////////////////////////////////////////////////////////////////////////////////////////////////////////7public class sonidoCoin : MonoBehaviour
{    
    public AudioClip audioCoin;
    private AudioSource thisaudio; 
    void Awake()
    {        thisaudio = this.GetComponent<AudioSource>();
    }
      public void OnTriggerEnter2D(Collider2D other)
    {        if(other.gameObject.tag == "Coin")
        {
            thisaudio.clip = audioCoin;
            thisaudio.Play();        }     
   }
Título: ayuda con este SCRIPT
Publicado por: Arthure en Enero 28, 2016, 03:37:36 PM
Cita de: neker92 date=1453945443" data-ipsquote="" data-cite="neker92" class="ipsQuotehola amigos, hice este script para que el JUGADOR cada vez que recoge MONEDAS se reproduzca un sonido. bueno con este escript que hice SI FUNCIONA pero  el problema es que  una vez que haya chocado O recogido ese objeto(moneda) sigue reproduciendo el sonido solo al tocar la pantalla o al presionar SPACE (en Unity) a pesar de no recoger moneda :::  Y no logro encontar el problema  espero su ayudaaa
Te recomiendo que cuando pretendas hacer un proyecto te hagas primero algun tipo de diseño escrito donde estampes no solo la idea de tu proyecto si no tambien, y mas importante, todo lo referente al funcionamiento : que clases (o scripts en este caso) vas a necesitar crear, que atributos tendran cada clase, que clases interactuaran entre ellas y de que modo, etc. Suele suceder que cuando se acaba un proyecto, tenga variaciones respecto al diseño original pero este siempre es de mucha ayuda para tener una guia y no cometer cagadas de este tipo ... sobretodo cuando estas empezando y no tienes experiencia en programacion.Leyendo tu problema y viendo el script, me voy a atrever a hacer afirmaciones sobre tu proyecto sin necesidad de verlo (si fallo en alguna afirmacion, puedes dejar de leer) :Por si no has entendido tu problema, te explico porque se produce ese "error" ... aunque no me hagas mucho caso tampoco, creo que no tengo ni idea de programacion y es dificil imaginarselo viendo solo un script xDUn gameobject solo puede tener un AudioSource, y si no estoy equivocando, en tu script que controla el movimiento de tu personaje tendras dentro de la funcion Update alguna linea parecida a if (Input.GetKeyDown (KeyCode.Space)) audio.Play (); que al principio deberia funcionar correctamente.Despues en este script, que tambien tienes puesto dentro de tu personaje, tienes una linea donde pones thisaudio.clip = audioCoin; y en ese momento lo que estas haciendo es cambiar el clip de audio que esta asociado al AudioSource del gameobject que contiene el script, que como es el personaje y solo puede tener un AudioSource ... estas cambiando tambien el clip que haces sonar desde el otro script cuando pulsas la barra espaciadora.Como dices que no conseguias encontrar el problema y ahora ya sabes donde esta ... solucionarlo (que no es nada complicado) es cosa tuya; paso de poner codigo mio porque tiene copyright xDDD
Título: ayuda con este SCRIPT
Publicado por: neker92 en Enero 28, 2016, 11:33:05 PM
[quote author=Arthure" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="35024" data-ipsquote-contentcommentid="126581">Solo leyendo el problema y despues el codigo, es evidente que los gameobjects "moneda" tienen el tag Coin ... si no fuera asi, el problema seria que no se escucharia NUNCA ese sonido.Dejando de banda que semicolon es ";" (punto y coma) ... esas dos llaves, la primera y la ultima no sobran. Son las llaves que indican todo lo que contiene en su interior la clase sonidoCoin y se tienen que poner siempre al principio para abrir la clase y al final para cerrarla.Te recomiendo que cuando pretendas hacer un proyecto te hagas primero algun tipo de diseño escrito donde estampes no solo la idea de tu proyecto si no tambien, y mas importante, todo lo referente al funcionamiento : que clases (o scripts en este caso) vas a necesitar crear, que atributos tendran cada clase, que clases interactuaran entre ellas y de que modo, etc. Suele suceder que cuando se acaba un proyecto, tenga variaciones respecto al diseño original pero este siempre es de mucha ayuda para tener una guia y no cometer cagadas de este tipo ... sobretodo cuando estas empezando y no tienes experiencia en programacion.Leyendo tu problema y viendo el script, me voy a atrever a hacer afirmaciones sobre tu proyecto sin necesidad de verlo (si fallo en alguna afirmacion, puedes dejar de leer) :Por si no has entendido tu problema, te explico porque se produce ese "error" ... aunque no me hagas mucho caso tampoco, creo que no tengo ni idea de programacion y es dificil imaginarselo viendo solo un script xDUn gameobject solo puede tener un AudioSource, y si no estoy equivocando, en tu script que controla el movimiento de tu personaje tendras dentro de la funcion Update alguna linea parecida a if (Input.GetKeyDown (KeyCode.Space)) audio.Play (); que al principio deberia funcionar correctamente.Despues en este script, que tambien tienes puesto dentro de tu personaje, tienes una linea donde pones thisaudio.clip = audioCoin; y en ese momento lo que estas haciendo es cambiar el clip de audio que esta asociado al AudioSource del gameobject que contiene el script, que como es el personaje y solo puede tener un AudioSource ... estas cambiando tambien el clip que haces sonar desde el otro script cuando pulsas la barra espaciadora.Como dices que no conseguias encontrar el problema y ahora ya sabes donde esta ... solucionarlo (que no es nada complicado) es cosa tuya; paso de poner codigo mio porque tiene copyright xDDD[/quote] Sólo texto | Texto con Imágenes