Unity welcher raycast trifft das Objekt?
Ich habe ein prefab, von dem ich per script die Gravitation ändern kann. Jetzt habe ich auf dem Player einen Script, der einen raycast zur Maus Position schießt. Der Raycast wird durch einen lineRenderer sichtbar.
Jetzt möchte ich, dass sich die Gravitation des prefabs nur ändert, solange ich den raycast auf ihn halte. Außerdem muss der Script auf dem prefab wissen, um welchen raycast es sich handelt, denn ich möchte noch andere laser haben, die halt aber nicht den Gravitations Effekt haben.
Aber genau da liegt der Haken. Ich schaffe es nicht auf den Script mit den raycasts zuzugreifen, weil sich der Effekt auf ein prefab bezieht.
Bitte helft mir... Liebe Grüße, Everstorm
1 Antwort
Aus dem RaycastHit eines Raycast bekommst du Informationen über das Objekt, welches getroffen wird. Schau dir die Beispiele hier mal an: Physics.Raycast (Scripting API)
Wenn dein Raycast erfolgreich ein Objekt trifft, kannst du auf das dazugehörige Objekt über hit.collider.gameObject zugreifen. Dann kannst du entsprechend die Gravitation dieses Objekts ändern.
Wenn nur bestimmte Objekte von dem Raycast beeinflusst werden sollen, wäre eine Idee beispielsweise, das über Tags (Scripting API) zu machen und den Objekten, deren Gravitation umgekehrt werden sollen, einen entsprechenden Tag zu geben. Wenn dein Raycast dann ein Objekt trifft, prüfst du, ob es den Tag hat und wenn ja, dann kehrst du die Gravitation um.
Danke! Es funktioniert! 🙏