Jump to content

gante juega

Registrados
  • Content Count

    3
  • Joined

  • Last visited

Community Reputation

1 Neutral

About gante juega

  • Rank
    Recién Llegado

Profile Information

  • Especialidad
    Diseñador

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. no soy experto y estoy empezando; igual y ya lo hiciste pero lo que se me viene a la mente es que cada vez que eliminas un asset/prefab tienes que eliminarlo también de los scripts o si no te va a dar errores por que falta un archivo que según el script si existe pero en el juego ya no esta.
  2. Hola a todos, tengo un problema y no encuentro solución, o al menos no una total, si arreglo el audio de los pasos se me descompone el audio de los saltos y viceversa jaja la cosa es que tengo el script para el movimiento del personaje, camina, salta y todo bien por ese lado, mi problema es cuando le intento poner el audio a la animación de caminar la de salto no se reproduce o cuando se reproduce la de salto, el de los pasos solo se escucha una vez y no continuo. El audio lo he añadido al hacer colisión con un tag, por que quiero meter diferentes sonidos según en el tag que se este caminando, además de que a la hora que cae pues se escucha que cae en pasto. Si activo el loop el sonido de salto se reproduce en loop y no cada vez que se pulsa la tecla "espacio" añado el código, así el audio solo se reproduce cuando cae después del salto, y no mientras se mantiene presionada la tecla de caminar using System.Collections; using System.Collections.Generic; using UnityEngine; public class player : MonoBehaviour { // Audio Salto public AudioClip saltoAudio; AudioSource fuenteSaltoAudio; // Audio Pasos public AudioClip pasosAudio; AudioSource fuentePasosAudio; // VELOCIDAD CAMINAR float velocidadX; //Salto private Animator animator; private float fuerzaSalto=6f; int saltosHechos; int limiteSaltos=2; private Rigidbody2D rb; // Start is called before the first frame update void Start() { //Salto animator= GetComponent<Animator>(); rb = GetComponent<Rigidbody2D>(); saltosHechos=0; // Audio Salto fuenteSaltoAudio=GetComponent<AudioSource>(); fuentePasosAudio=GetComponent<AudioSource>(); } // Script para correr > descanso > correr void Update() { velocidadX=0f; if (Input.GetKey(KeyCode.D)){ if (GetComponent<SpriteRenderer>().flipX==true){ GetComponent<SpriteRenderer>().flipX = false; } GetComponent<Animator>().SetBool ("correr",true); velocidadX=3f; } if (Input.GetKey(KeyCode.A)){ if (GetComponent<SpriteRenderer>().flipX==false){ GetComponent<SpriteRenderer>().flipX = true; } GetComponent<Animator>().SetBool ("correr",true); velocidadX=-3f; } transform.Translate(velocidadX*Time.deltaTime,0f,0f); if (velocidadX==0f){ GetComponent<Animator>().SetBool ("correr",false); } //Salto if(Input.GetKeyDown(KeyCode.Space)) { if(saltosHechos<limiteSaltos) { // Audio Saltar fuenteSaltoAudio.clip=saltoAudio; fuenteSaltoAudio.Play (); animator.SetBool("saltar", true); rb.AddForce(new Vector2(0f,fuerzaSalto),ForceMode2D.Impulse); saltosHechos++; } } } //Elimina animación saltar private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Suelo") { saltosHechos=0; animator.SetBool("saltar", false); fuentePasosAudio.clip=pasosAudio; fuentePasosAudio.Play (); } } } Actualización he encontrado una solución a medias, no se si sea la mejor manera pero funciona, lo que he hecho es crear un objeto el cual he llamado pies, le he añadido un audio source y un script, ahora si se escucha mientras se mantiene presionada la tecla, pero no detecta la colisión con el suelo, esto hace que en el salto si aprietas la "D" se siga reproduciendo el audio de caminar mientras estas en el aire, además si no me detecta la colisión no sonara diferente con los diferentes tags "pasto", "metal", "concreto" etc... using System.Collections; using System.Collections.Generic; using UnityEngine; public class pies : MonoBehaviour { private AudioSource audioSource; // Start is called before the first frame update void Start() { audioSource=GetComponent<AudioSource>(); } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.D)){ audioSource.UnPause(); } if(Input.GetKeyUp(KeyCode.D)){ audioSource.Pause(); } if (Input.GetKeyDown(KeyCode.A)){ audioSource.Play(); } if(Input.GetKeyUp(KeyCode.A)){ audioSource.Pause(); } } } he intentado con private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Suelo") { pero no surge efecto
×
×
  • Create New...