lima-city: Webhosting, Domains und Cloud
3 Pluspunkte 0 Minuspunkte

Wie kann ich den Winkel berechnen in dem die Kugel (der Raycasthit) eingeschlagen ist? Das hit Objekt hat eulerAngles aber ein Winkel ist ja nur eine einfache Zahl und kein Vector3.

RaycastHit hit;
if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, Mathf.Infinity, layerMask))
{

    Debug.Log("You hit " + hit.name + " at an angle of " + hit.transform.eulerAngles + " degrees");

}
von  

1 Antwort

1 Pluspunkt 0 Minuspunkte

Die EulerAngles sind die Winkel von dem Objekt das du getroffen hast. Wenn du auf eine Wand schießt bewegt sich die Wand nicht, du wirst also immer die selben Zahlen bekommen. Was du suchst ist der Winkel des Raycast relativ zur Normalen.

float angle = Vector3.Angle(transform.TransformDirection(Vector3.forward), hit.normal);

Ein Winkel von 0 bedeutet dass der Raycast senkrecht zur Oberfläche auftrifft, ein Winkel von 90 bedeutet dass er flach zur Oberfläche auftrifft.

von (716 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

13 Nutzer