コード例 #1
0
    void checkClickPos()
    {
        Vector2 auxPos   = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        float   distance = Vector2.Distance(transform.position, auxPos);

        if (distance <= sr.cerca)
        {
            if (lastZone != SonarZones.cerca)
            {
                print("cerca");
                lastZone = SonarZones.cerca;
                Vibration.Cancel();
                Vibration.SonarVibration(0.5f, 333, 50, true);
            }
        }
        else if (distance <= sr.medio + sr.cerca)
        {
            if (lastZone != SonarZones.medio)
            {
                print("medio");
                lastZone = SonarZones.medio;
                Vibration.Cancel();
                Vibration.SonarVibration(0.5f, 333, 333, true);
            }
        }
        else if (distance <= sr.lejos + sr.medio + sr.cerca)
        {
            if (lastZone != SonarZones.lejos)
            {
                print("lejos");
                lastZone = SonarZones.lejos;
                Vibration.Cancel();
                Vibration.SonarVibration(0.5f, 333, 666, true);
            }
        }
        else
        {
            if (lastZone != SonarZones.fuera)
            {
                lastZone = SonarZones.fuera;
                Vibration.Cancel();
            }
        }
    }
コード例 #2
0
 //calcula la vibración correspondiente dada la distancia dist al centro con indice cIndex dentro de la lista de centros
 void CalculateVibration(int cIndex, float dist)
 {
     //distancia al radio céntrico
     if (dist <= radios[cIndex].cerca)
     {
         //solo realizamos las acciones si es la primera vez que entramos al centro
         if (lastZone != SonarZones.cerca)
         {
             lastZone = SonarZones.cerca;
             Vibration.Cancel();     //cancelación preventiva de la vibración actual
             Vibration.SonarVibration(vibrationStrengh, 2000, vibrationRestCerca, true);
         }
     }
     //rango del segundo radio
     else if (dist <= (radios[cIndex].medio + radios[cIndex].cerca))
     {
         if (lastZone != SonarZones.medio)
         {
             lastZone = SonarZones.medio;
             Vibration.Cancel();
             Vibration.SonarVibration(vibrationStrengh, vibrationDuration, vibrationRestMedio, true);
         }
     }
     //rango del tercer radio
     else if (dist <= (radios[cIndex].lejos + radios[cIndex].medio + radios[cIndex].cerca))
     {
         if (lastZone != SonarZones.lejos)
         {
             lastZone = SonarZones.lejos;
             Vibration.Cancel();
             Vibration.SonarVibration(vibrationStrengh, vibrationDuration, vibrationRestLejos, true);
         }
     }
     //fuera del rango de los radios
     else
     {
         if (lastZone != SonarZones.fuera)
         {
             lastZone = SonarZones.fuera;
             Vibration.Cancel();
         }
     }
 }
コード例 #3
0
 private void OnMouseOver()
 {
     //si pulsamos sobre la forma
     if (ScreenInput.instance.getInput() == move.pressing)
     {
         //usamos una bandera para no repetir llamadas a comenzar la vibración
         if (!lastCliked)
         {
             //llamada a vibrar al maximo
             Vibration.SonarVibration(1, 2000, 0, true);
             OnVibrationStart();
         }
     }
     else
     {
         //si dejamos de pulsar, reajustamos la bandera y cancelamos la vibración
         lastCliked = false;
         Vibration.Cancel();
     }
 }