Jump to content
Unity Insider Forum

Mathf.Round Problem


Leader_Mike_2011

Recommended Posts

Schönen Abend an Alle ;)

 

Ich habe ein kleines Problem und weiß nicht wie ich das lösen soll.

 

Ich habe ein script in dem dort wo der Benutzer auf dem Bildschirm anklickt ein Cube gesetzt wird in der Entfernung 2.

 

Jetzt möchte ich das diese Position, wo man angeglickt hat zuerst gerundet wird auf eins damit man sozusagen ein Rastersystem hat.

 

Hier mal das Script:

 

	void Update ()
   {
       if (Input.GetMouseButtonDown(1))
       {
           Vector3 a = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 2));

           Instantiate(Cubi, a, RoundQuaternion(transform.rotation));
       }

}

   // round the position of cubes
   Vector3 RoundVector(Vector3 pos)
   {

       pos.x = Mathf.Round(pos.x);
       pos.y = Mathf.Round(pos.y);
       pos.z = Mathf.Round(pos.z);
       return pos;

   }

   // round the rotation of cubes
   Quaternion RoundQuaternion(Quaternion rot)
   {
       Vector3 euler = rot.eulerAngles;
       euler.x = Mathf.Round(euler.x / 90.0f) * 90f;
       euler.y = Mathf.Round(euler.y / 90.0f) * 90f;
       euler.z = Mathf.Round(euler.z / 90.0f) * 90f;
       return Quaternion.Euler(euler);
   }

 

Vector 3 a muss also einfach gerundet werden, damit die Blöcke nicht Kreuz und Quer gesetzt werden.

 

Schonmal vielen Dank im Vorraus für die Hilfe^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...