LogicEditor | Add Nodes that interact with the player
Summary
The LogicEditor allows users to make objects in a scene interactive. Most of the Action/Reactions currently implemented focus on these object interactions. Only the head
and controller
object nodes have the player as the target. An extension/refactor to these nodes into player-based
nodes can allow users to set player parameters in a module.
Problem or need
Without player based nodes
we have no way to get the current player type (e.g. for branching the module logic for desktop and xr based interactions) or to set available player interactions (e.g. to lock teleportation or access to the spatial ui).
Proposed solution
Implement nodes that can interact with the player for the following use cases:
-
GetPlayerType
: If we can get the player type in the Logic Editor we can implement branching interactions for different use modes. -
SetNavigationMode
: Allow logic to set the players navigation mode. This could be betweenTeleport
,Grab Move
andFly
. This should also be used to set the navigation mode todisabled
or something like that, e.g. when we want to lock teleportation at the beginning of a learning module. -
Enable/Disable Spatial UI
: As novice users more often than not hit theA
button when they do not need to, this would allow us to disable the spatial ui.
Alternatives considered
- Building separate learning modules for xr and desktop would likely lead to a lot of redundant code and the need to maintain multiple scenes for the same content.
- Implementing a kiosk mode and building a separate kiosk version of the app would create additional overhead for our release pipeline.
Additional context
N/A
Edited by Christian Dominic