MobileXR: Programmatically Moving Player

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By rbierig

Godot 3.5.1 for mobile VR (smartphone only):

I am creating a player for OpenVR/XR and having a ARVROrigin with a childnode ARVRCamera. So far I am addding the following code to the ARVROrigin (I guess this would be the same for OpenXR, but I currently just have this):

extends ARVROrigin
onready var camera = $ARVRCamera
func _ready():
	var arvr_interface = ARVRServer.find_interface("Native mobile");
	if (arvr_interface and arvr_interface.initialize()):
		get_viewport().arvr = true
		get_viewport().hdr = false

I want to move the player (represented by the camera of the origin slowly forward whenever the player looks on the ground (e.g., by a particular angle downward).

I wonder what the best way is to do this – would it be to write _physics_process(delta) with movement code (and a _input(event) method to check on the angle, all part of the ARVROrigin. Or would it be clearner to write that as part of a KinematricBody parent that also has access to move_and_slide and all the rest?