Kojote Geschrieben 20. Juni 2018 Melden Share Geschrieben 20. Juni 2018 (bearbeitet) Grüße! Ich lese gerade etwas über Layer bei Rays. Ich wollte es gern so machen, dass ein Ray den ich habe nur auf Layer 10 reagiert, er Layer 5 nicht durchdringen kann und alle anderen Layer ignoriert. Kann mir jemand sagen, wie ich das mit Layern hin bekommen? Vielen Dank! Kojote EDIT: Habe ich jetzt gefunden, mit Layermask, klappt nur nicht, er prallt immer noch gegen Collider bzw. Layer die er eigentlich ignorieren sollte: mask = LayerMask.GetMask("UI", "Bodenplatte_zum_Charakter_setzen"); Des weiteren, gibt es ein weiteres Problem. Kann man sagen, dass nach UI schluss ist mit dem Ray? Ich habe das Problem das ich mehrere Slots in meinem UI auswählen kann und der Ray geht einfach durch das UI hindurch. Kann man da was machen? EDIT 2: OK, ich machs nun damit: if (EventSystem.current.IsPointerOverGameObject()) { return; } bearbeitet 20. Juni 2018 von Kojote Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 21. Juni 2018 Melden Share Geschrieben 21. Juni 2018 Mit einer LayerMask beim Raycast gibst du nur an, womit der Ray kollidiert. Worauf der Raycast "reagiert" ist ja im Code danach definiert und hat mit dem Raycast nichts mehr zu tun. Der trifft etwas oder eben nicht. Du willst also nur zwei Layer treffen. Warum is "UI" dabei? UI-Canvase haben nämlich ihren eigenen Raycaster. Physics.Raycasts haben in der UI entsprechend eigentlich nichts zu suchen. Aber so oder so... warum funktioniert das jetzt nicht? hast du "mask" denn auch an den Raycast-Aufruf übergeben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.