Beispiel #1
0
 void OnTriggerEnter(Collider collided)
 {
     Debug.Log(collided.name);
     if (collided.tag == "Mallet" && notes.Count > 0)
     {
         float amountOff       = Vector3.Distance(notes[0].transform.position, transform.position);
         float percentAccurate = (0.6f - amountOff) / 0.6f;
         if (percentAccurate > 0)
         {
             Instantiate(particles, transform.position, particles.transform.rotation);
             Debug.Log(percentAccurate);
             if (percentAccurate > 0 && percentAccurate <= 0.3)
             {
                 Instantiate(poor, transform.position, Quaternion.identity);
             }
             else if (percentAccurate > 0.3 && percentAccurate <= 0.6)
             {
                 Instantiate(good, transform.position, Quaternion.identity);
             }
             else if (percentAccurate > 0.6 && percentAccurate <= 0.9)
             {
                 Instantiate(excellent, transform.position, Quaternion.identity);
             }
             else if (percentAccurate > 0.9)
             {
                 Instantiate(fantastic, transform.position, Quaternion.identity);
             }
             else
             {
                 Instantiate(miss, transform.position, Quaternion.identity);
             }
             int multiplier = 1;
             if (notes[0].GetComponent <Note>().type == 2)
             {
                 multiplier = Mathf.RoundToInt(Mathf.Max(leftController.GetVelocity().magnitude, rightController.GetVelocity().magnitude));
                 GameObject multiplierText = Instantiate(multiplierBase, transform.position, Quaternion.identity);
                 multiplierText.GetComponent <TextMesh>().text = multiplier + "x";
                 Debug.Log(multiplier);
             }
             player.Score(Mathf.FloorToInt(Mathf.Max(0, 50f - amountOff)) * multiplier);
             Destroy(notes[0]);
             notes.RemoveAt(0);
         }
     }
 }