Skip to content

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 between Teleport, Grab Move and Fly. This should also be used to set the navigation mode to disabled 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 the A 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