C# Unity Objekt am kamerarand apprallen lassen

  • Ersteller Ersteller kcinay055679
  • Erstellt am Erstellt am
K

kcinay055679

Gast
Wie kann ich in Unity ein Objekt am Kamerarand apprallen lassen??
Meine einzige Idee wäre gewesen das ich ein neues Objekt erstelle und das im versteckten als Eand fungieren lasse aber ich bin mir ziemlich sicher das es eine Elegantere Möglichkeit gibt oder??
Und wenn ich schon hier im Forum bin noch eine Frage:
Wie kann ich rotation hinzufügen?
Mit
C#:
transform.rotation = Quaternion.Euler(0, 180, 0);
kann ich zwar Rotation festlegen nicht jedoch erhöhen(oder senken)
LG Kcinay
 
Zuletzt bearbeitet von einem Moderator:
Ich habe von Unity zwar keine Ahnung, aber ich kann dir sagen wie das prinzipiell funktionieren kann:

  1. Den Ortsvektor des Objekts auf die Kameraebene projezieren. Evtl. die Kollisionbox des Objekts auf die Ebene projezieren.
  2. Den Rand der Kamera bestimmen.
  3. Abstand bestimmen. Dann gegebenenfalls den Impuls des Objekts ändern.
Wenn die Kollisionsbox des Objekts einfach nur eine Kugel ist, dann ist das so sehr einfach. Bei einem Würfel würde es schon etwas komplizierter und bei schwierigeren Kollisionsabfragen würde ich da lieber deine "unsaubere" Methode nehmen.

Das Problem deiner Rotation ist, dass du einfach eine feste Rotation setzt. Du musst aber die Rotation des Objekts nehmen und dann die Änderung draufaddieren. Das müsste so aussehen (Pseudocode):

Code:
rotation = obj.rotation
transform.rotation = Quaternion.Euler(rotation.x + 0, rotation.y +180, rotation.z + 0);
 
Hast du mir einen Code vorschlag bin mit deiner Erklärung überfordert.
 
Naja, das ist alles simple Lineare Algebra Mathematik, da müsste ich Dir eher ein Mathebuch vorschlagen.

Ansonsten lass es doch einfach so, wenn es funktioniert, dann funktioniert es. ;)
 

Ähnliche Themen

Zurück
Oben