Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: jtorp20 en Julio 17, 2017, 03:14:53 PM

Título: sonido de pisadas
Publicado por: jtorp20 en Julio 17, 2017, 03:14:53 PM
Hola a todos.
 
Tengo una pega con el sonido de pisadas en mi personaje. El sonido de pisadas  entra cuando el personaje se mueve, y se para cuando el personaje se detiene, el problema es que suena un zumbido en lugar del sonido del clip. El defecto se da con clips distintos, con cascos en el pc y con sonido de altavoz. Creo que es problema del script.
 
¿A alguien le ha pasado algo similar? 
 
Pongo el Script señalando las partes de audio 
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class SidneyControlMio : MonoBehaviour {
    Animator anim;
    public float speed= 5f;
    public float speedRot= 100f;
    public Slider vida;
    public AudioSource correr;
 
    void Start () {
        anim = GetComponent<Animator>();
    }
    void OnTriggerEnter(Collider other)
    {
        if(other.gameObject.tag== "armaEnemigo")
        {
            vida.value -= 15;
        }
    }
    
    void Update () {
        float translation = Input.GetAxis ("Vertical") * speed;
        float rotation = Input.GetAxis ("Horizontal") * speedRot;
        translation*= Time.deltaTime;
        rotation*= Time.deltaTime;
        transform.Translate(,,translation);
        transform.Rotate(, rotation,);
        if (vida.value <= )
        {
            anim.SetBool ("isDeath", true);
            anim.SetBool ("isIdle", false);
            anim.SetBool ("isRunning", false);
            anim.SetBool ("isAttacking", false);
            correr.Stop ();
            return;
        }  
         else
         {
            if (Input.GetButtonDown ("Fire1")) {
                anim.SetTrigger ("isAttacking");
                correr.Stop (); 
            }
            if (translation != ) {
                anim.SetBool ("isRunning", true);
                anim.SetBool ("isIdle", false);
                correr.Play();
            } else {
                anim.SetBool ("isRunning", false);
                anim.SetBool ("isIdle", true);
                correr.Stop ();
            }
         }
            
 
    }
}

 
 
 
Por cierto, el resto del script a mi me funciona bien para control del personaje principal, por si a alguien le es de utilidad.
 
Incluye el movimiento del personaje con entrada de animaciones, detección de colisión con el arma del enemigo y barra de vida.
 
Gracias.
 
 
 
 
Título: sonido de pisadas
Publicado por: lightbug en Julio 17, 2017, 04:46:42 PM
Cita de: Jose Angel date=1500297293Por cierto, el resto del script a mi me funciona bien para control del personaje principal, por si a alguien le es de utilidad.
   
   
      Incluye el movimiento del personaje con entrada de animaciones, detección de colisión con el arma del enemigo y barra de vida.
   


uff para atras satanas!! te recomiendo que separes bien todo, el control != sonido != barra de vida , separa lo que puedas los scripts. Ahora no lo ves pero si empezas a mejorar el tema de los pasos vas a necesitar separarlos.
 
fijate aca:
 

if (translation != ) {
                anim.SetBool ("isRunning", true);
                anim.SetBool ("isIdle", false);
                correr.Play();:4_joy:
            }

 
estas dando play 60 veces por segundo (idealmente), siempre verifica antes que no se este reproduciendo --> "isPlaying". Igual este metodo es dependiente dela longitud del clip por lo que no me agrada demasiado.
 
yo utilizo el siguiente esquema:
 

 
 
saludos
Título: sonido de pisadas
Publicado por: jtorp20 en Julio 17, 2017, 05:56:42 PM
muchísimas gracias por tu respuesta.