none
Como Incrementar una variable en base a otra RRS feed

  • Pregunta

  • Hola Buenas, estoy buscando la manera de generar una especie de sistema de alarma de proximidad, he logrado obtener la distancia entre los dos puntos, y hacer que funcione el sonido de aviso, el cual aumenta dependiendo de la distancia, a menor distancia mayor volumen en el audio, así avisar de una posible colisión. 

    pero es sistema que realice no es optimo, me gustaría que el incremento no fuera brusco, y se me acaban las ideas.

    anexo el código que he realizado.

        private float Distance;
        private AudioSource YourClose;

        private void Update()
        {
            SoundDisctance();
        }


        private void SoundDisctance()
        {
            var modulo = Player.transform.position - gameObject.transform.position;
            Distance = modulo.magnitude;

            if (Distance <= 10)
            {
                YourClose.volume = 1;
            }
            else if (Distance <= 37.5)
            {
                YourClose.volume = 0.5f;
            }
            else if (Distance <= 75)
            {
                YourClose.Play();
                YourClose.volume = 0.1f;
            }
            else
                YourClose.Stop();
        }


    jueves, 24 de septiembre de 2020 7:32

Todas las respuestas

  • Hola Vaiperdix

    Tendrías que hacer la verificación de proximidad con pasos o variación más cortos, en lugar de verificar cuando Distance vale 10, 37.5, y 75, hacerlo, por ejemplo, para 10, 20, 30, 40, 50, 60, y 70, o más detallado, como te guste más. Y también el volumen lo vas bajando más "lento", 1, 0.9, 0.8, 0.7, ...

    Saludos

    Pablo

    jueves, 24 de septiembre de 2020 13:49
  • Hola Pablo

    Muchas Gracias, lo empleare con mas puntos en la distancia.

    viernes, 25 de septiembre de 2020 7:55
  • Hola

    Si te funcionó la respuesta de Pablo?

    Saludos

    viernes, 25 de septiembre de 2020 17:37
    Moderador
  • Hola Oscar

    si, realizando diversas mediciones he podido realizar el funcionamiento, aunque aun pienso una manera de que lo pueda hacer mas preciso como si fuera centímetro a centímetro, sin tener que indicarle yo las distancias.

    martes, 29 de septiembre de 2020 5:08
  • hola

    Pero que es lo que lanza la ejecucion de SoundDisctance() ?

    el hacerlo brusco o no va a dependener del evento que este evaluando la distancia entre los objetos, si ese evento se genera una vez por minuto tendras un determinado grafico mas aserrado en cambio si es algo fluido tendras una onda y eso permitira que la fluctuacion del sonido sea consecuente

    Tambien pones un if para determinar el salto en el sonido, eso tambine lo hace brusco, deberias poner un equivalente que tambien sea una onda por ejemplo si vas a evaluar que la distancia sea de 1metro y a partir de alli sonar entonces tu 1m seria el sonido mas bajo y el 0 el mas alto todo ese rango determina la escala que variacion del sonido, pero no usas ningun if para asignar el volumen

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 29 de septiembre de 2020 13:10
  • Hola Leandro, me sentare a investigar lo que me comentas, porque la verdad no comprendo mucho. sobre el SoundDistance() se ejecuta cada FPS.

    miércoles, 7 de octubre de 2020 5:46