Jump to content
Unity Insider Forum

Events in WorldSpace-Canvas mit ScreenSpaceOverlay


Hellhound

Recommended Posts

Ich habe aktuell das Problem, dass meine WorldSpace Canvas UI-Objekte nicht auf Events reagieren, solange ich im parallel verwendeten ScreenSpaceOverlay-Canvas den Raycaster nicht deaktiviere. Ich muss jedoch beide Canvas parallel betreiben können, da ich über die WorldSpace-Canvas Objekte Menüs, die im ScreenSpace-Overlay angezeigt werden sollen, triggern muss. Folgendes habe ich laut Google schon probiert, alles ohne Effekt:

  • Unterschiedliche Sorting Order in den Canvas Objekten  (WorldSpace 0, Overlay 1)
  • Unterschiedliche Layer  und Tags
  • WorldSpace-Event-Camera (Eigentlich eigene) auf MainSpace gesetzt und vice versa.
  • Canvas Groups für beide Canvas hinzugefügt
  • Blocking Masks in beiden Raycastern auf Nothing gesetzt

Ich habe mal Screenshots meiner aktuellen Konfiguration der Canvas-Objekte und der Objekthierarchie hinzugefügt (Der Raycaster im WorldSpace ist inzwischen wieder aktiviert, das war nur ein Test). Habt Ihr evtl. noch Ideen, wie ich beide zusammen zum Laufen bekomme?

 

Canvas.PNG

WorldSpaceCanvas.PNG

Hierarchy.PNG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie es ausschaut gibt es in Unity keine Möglichkeit beide Canvas-Typen gleichzeitig zu nutzen. D.h. sie können zwar gleichzeitig genutzt werden, dürfen sich aber nicht überlappen. Der Overlay-Canvas scheint immer die höhere Priorität zu haben. Und wenn, wie in meinem Fall, ein UIElement über dem 3D-Objekt liegt, wird in den dahinter liegenden Objekten kein Hit mehr ermittelt. Die Sort-Order der Canvas-Objekte hat scheinbar hier keine Wirkung. D.h. ich muss in meinem Fall sicherstellen, dass der Hit über dem 3DObjekt nicht blockiert. Das kann ich auf 2 Arten erreichen:

  1. Deaktivieren des Raycasters am Overlay Canvas (Bringt mir nichts, da ich ja noch die UIElemente im Overlay nutzen will)
  2. Hinzufügen einer Canvas-Gruppe auf dem überdeckenden UI-Element und hier explizit das Blocking der Raycasts deaktivieren

Durch den 2ten Schritt erreiche ich, dass die unter dem Overlay liegenden UIElemente am WorldCanvas auf die Events reagieren, nun muss ich halt zusätzlich, klassisch am 3D-Objekt ein Eventhandler einbauen um hier auf Click-Ereignisse reagieren zu können, damit ich mein Objekt rotieren kann ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...