Code/Example/Complex/PlayerWalkControllerComplex.VR.cs
using Sandbox;
using Sandbox.VR;
namespace XMovement;

public partial class PlayerWalkControllerComplex : Component
{
	[Property, FeatureEnabled( "VR" )] public bool EnableVR { get; set; } = false;
	[Property, Feature( "VR" )] public VRAnchor Anchor { get; set; }
	[Property] public VRTrackedObject HeadTracker { get; set; }
	[Sync] public bool IsInVR { get; set; } = false;

	private void SetupVR()
	{
		if ( !EnableVR ) return;
		IsInVR = Game.IsRunningInVR && Game.IsPlaying;
		if ( Head.IsValid() && !HeadTracker.IsValid() )
		{
			HeadTracker = Head.Components.Create<VRTrackedObject>();
			HeadTracker.PoseSource = VRTrackedObject.PoseSources.Head;
			HeadTracker.TrackingType = VRTrackedObject.TrackingTypes.All;
			HeadTracker.UseRelativeTransform = false;
		}
	}

	private void UpdateVR()
	{
		if ( !IsInVR ) return;
	}
	public virtual void VRPositionHead()
	{
		if ( !IsInVR ) return;
	}
}