So I have 3 monitors that each need their own GUI display. There are input buttons on each. In the scene I have 3 cameras (one assigned to each display 1-3) and three canvases. I’ve tried the following:
- Setting each canvas to screen overlay and setting the target display setting on each canvas to display 1 - 3. In this test I had the buttons in the exact same overlapping screen position. When I run the scene, the camera renders the correct button, but the event system reports clicks only on the button from canvas 1 (topmost in the heirarchy) assigned to display 1 - regardless of the selected display in the game window. So for example, I am clicking the button on canvas 2 (assigned to display 2) on display 2 in the game window and getting a debug log that the button on canvas 1 was clicked.
I tried setting each canvas to it’s own layer and setting the graphics raycaster on the canvas to only block that layer, then I tried to block every layer but it’s own, then I tried to block nothing - and no matter what I set these to - there was no change in behavior.
-
Then I tried setting each of the 3 canvases to camera overlay - assigned the target camera on each to match the display it was on. This had similar behavior - the only difference was that events only came from the last item in the heirarchy (bottom-most).
-
Then I tried setting each canvas to world space. I set the target cameras appropriately for each display. I physically moved each canvas/button completely away from each other and made sure there was no overlap on 3 canvases, 3 cameras, or 3 buttons. When I do this I only see input on one of the 3 buttons just like before.
-
I left the canvases in world space but moved them all to be visible in all 3 cameras. I clicked each button in display 1 (camera 1) and got events for all 3. This leads me to believe that the assigned event cameras on the canvases have no effect.
-
I tried going setting the sort order of each canvas in world space (and camera space) so that each canvas was on its own layer. And in this case I still only get input from one button, but its always from the canvas with the highest sort order value.
So I’m at a loss - I need to get one magic combo to work. Any help is appreciated. Please see the attached project.