Enabling Pointer Events
Whether the cursor is visible and whether your panels can be clicked/hovered is controlled by the css property pointer-events
or Mouse.Visible in C#
Values
pointer-events: none
No pointer events. Even if the cursor is visible because of the style on another panel you won't be able to click on this panel, your clicks will go through it as if it's not there. If there are no panels below this then input will go to the game.
This is the default behaviour.
pointer-events: all
Force the cursor visible and active. The mouse input will never go to the game for this panel. If a panel with this style is visible then the cursor will be visible.
pointer-events: auto
Inherit the event from its ancestors.
Scenario
Spawnmenu
Add pointer-events: all
when spawnmenu open key is pressed.
The suggested way would be to add a class to your root panel called something like spawnmenuopen
. Then you can have this style for your spawnmenu.
Pointer passthrough to game
To show the pointer and still allow mouse input to the game, you can add pointer-events: all
to some panel with a width and height of 0. This way you still show the cursor, but no panel will steal your input.
CursorPassthroughComponent.razor is just an empty razor component that you can add to your Screen Panel.
CursorPassthroughComponent.razor.scss will ensure the panel has a size of 0, and pointer events enabled.