xrjamfeb2025/scenes/demo_scene_base.gd

27 lines
941 B
GDScript

class_name DemoSceneBase
extends XRToolsSceneBase
func _ready():
super()
var webxr_interface = XRServer.find_interface("WebXR")
if webxr_interface:
XRToolsUserSettings.webxr_primary_changed.connect(self._on_webxr_primary_changed)
_on_webxr_primary_changed(XRToolsUserSettings.get_real_webxr_primary())
func _on_webxr_primary_changed(webxr_primary: int) -> void:
# Default to thumbstick.
if webxr_primary == 0:
webxr_primary = XRToolsUserSettings.WebXRPrimary.THUMBSTICK
# Re-assign the action name on all the applicable functions.
var action_name = XRToolsUserSettings.get_webxr_primary_action(webxr_primary)
for controller in [$XROrigin3D/LeftHand, $XROrigin3D/RightHand]:
for n in ["MovementDirect", "MovementTurn", "FunctionTeleport"]:
var f = controller.get_node_or_null(n)
if f:
if "input_action" in f:
f.input_action = action_name
if "rotation_action" in f:
f.rotation_action = action_name