Ademas de agregar el play on awake, colocar el loop para que se repita constantemente al acabar la pista de audio.
¡Gracias!
Así logre poner dos audio source para el efecto de sonido del salto y los pasos cuando camina
(Teniendo en cuenta que ya tenemos listo el efecto de sonido para el salto)
Agregar un audio source con el efecto de sonido de los pasos y darle esta configuración:
y para el codigo:
using System.Collections;using System.Collections.Generic;using System.Threading;using UnityEditor;using UnityEngine;using UnityEngine.Animations;publicclassPlayerMovement:MonoBehaviour{publicRigidbody2D playerRb;public float speed =.5f;public float jumpSpeed =300;publicAnimator playerAnim;publicAudioSource stepsAudio; bool isGround; bool stepsPlayer;// Update is called once per framevoidUpdate(){ playerRb.velocity=newVector2(Input.GetAxis("Horizontal")* speed, playerRb.velocity.y);if(Input.GetAxis("Horizontal")==0){ stepsAudio.Pause();/*Cuando el player Esta quieto y teniendo encuenta que el audio se le dio play on awake, se pausara el efecto de sonido*/ playerAnim.SetBool("isWalking",false);}elseif(Input.GetAxis("Horizontal")<0){ stepsAudio.UnPause();/*si el player camina (derecha o izquierda) se dara continuacion al efecto de sonido sonido*/ playerAnim.SetBool("isWalking",true);GetComponent<SpriteRenderer>().flipX=true;}elseif(Input.GetAxis("Horizontal")>0){ stepsAudio.UnPause();/*si el player camina (derecha o izquierda) se dara continuacion al efecto de sonido sonido*/ playerAnim.SetBool("isWalking",true);GetComponent<SpriteRenderer>().flipX=false;}if(isGround ==true){if(Input.GetKeyDown(KeyCode.Space)){ stepsAudio.mute=true;/*Se le dara mute al efecto de sonido para que no suene en el aire*/GetComponent<AudioSource>().Play(); playerRb.AddForce(Vector2.up* jumpSpeed); isGround =false; playerAnim.SetBool("Jump",true);}}}privatevoidOnCollisionEnter2D(Collision2D collision){if(collision.gameObject.CompareTag("Ground")){ stepsAudio.mute=false;/*Se quitara el mute cuando el player este en el ground para continuar con el efecto de sonido*/ isGround =true; playerAnim.SetBool("Jump",false);}}}
Algo curioso es que si colocan el audio source en el mismo objeto del collectable el audio no se reproduce, intuyo que se debe a que no le da tiempo a reproducirse antes de que el objeto se desabilite. Imagino que algo parecido ocurriría si las partículas estuvieran en cada objeto y no fueran objetos independientes. Estaría genial que lo profe lo recalcara para que cuando nos toque diseñar nuestros propios juegos no nos pase.
Hay un notorio delay entre el momento en que se ejecuta el play y el momento en que en realidad se reproduce del sonido, ¿esto tiene que ver con el motor o con los archivos de audio? ¿como podría solucionarse?
He de suponer que el clip de audio tiene un delay al inicio y por ese motivo suena desfasado.
Alguien tuvo el problema de que si ponen el setActive despues, el audio no se ejecute, en cambio si lo sacan anda?
Para el reto sì serìa importante considerar hacer el llamado a la funciòn como con el objeto coleccionable ya que estamos pensando en agregar màs de un enemigo
Cuando agarra el 2 coleccionable cuenta como si sumara dos puntos ¿Alguien sabe que paso ahí?
Cuando le cambio el pivote al enemigo, desaparece de la animación.
Hola ¿Como se haria cuando se tiene mas de un audioSource en el objeto para llamar cada uno?
No lo he intentado, pero se me ocurre que cuando necesites que se active otro sonido, le cambies el audioClip, que es atributo del Audio Source, por código. tal vez exista otro método, pero por el momento se me ocurre eso.
se me ocurrió otra, puedes crear varias variables publicas de tipo AudioSource, después arrastras cada audio source a la variable que corresponda.
Realmente me encanta esa musica de fondo queda perfecta para algo tipo dungeons
En mi caso, el efecto de sonido no se reproduce si coloco el audio source en el collectable o el player, asi que, cree otros objetos aparte solo para el sonido y obtuve su referencia en el script que corresponde.
En todo caso, alguien sabe por que si lo coloco audio source en el propio objeto, no funciona xc?