27 lines
941 B
GDScript
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
|