Skip to content

Sample Code

Cory Corvus edited this page May 19, 2020 · 9 revisions

Unity Sample Code

UnityXR Disable VR

        UnityEngine.XR.XRSettings.enabled = false;

UnityXR Set Tracking Space Type

        UnityEngine.XR.XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale);
        //UnityEngine.XR.XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

UnityXR Dropped Frame Count

        int droppedFrameCount;
        UnityEngine.XR.XRStats.TryGetDroppedFrameCount(out droppedFrameCount);

UnityXR GPU Time Last Frame (seconds)

        float gpuTimeLastFrame;
        UnityEngine.XR.XRStats.TryGetGPUTimeLastFrame(out gpuTimeLastFrame);

UnityXR Disable Tracking

        //UnityEngine.XR.InputTracking.disablePositionalTracking = true;
        UnityEngine.XR.XRDevice.DisableAutoXRCameraTracking(Camera.main, true);

UnityXR Get Resolution Scale

        float eyeTextureResolutionScale = UnityEngine.XR.XRSettings.eyeTextureResolutionScale;

UnityXR Set Resolution Scale

        UnityEngine.XR.XRSettings.eyeTextureResolutionScale = 1.0f;

SteamVR Disable VR

        Valve.VR.SteamVR.enabled = false;

SteamVR Set Tracking Space Type

        var compositor = Valve.VR.OpenVR.Compositor;
        compositor.SetTrackingSpace(Valve.VR.ETrackingUniverseOrigin.TrackingUniverseStanding);
        //compositor.SetTrackingSpace(Valve.VR.ETrackingUniverseOrigin.TrackingUniverseSeated);

SteamVR Auto Enable VR

        Valve.VR.SteamVR_Settings.instance.autoEnableVR = true;

SteamVR Hide Controllers

        SteamVR_Utils.Event.Send("hide_render_models", false);

SteamVR Disable Tracking

        Valve.VR.SteamVR_Settings.instance.poseUpdateMode = SteamVR_UpdateModes.Nothing;

SteamVR Pause Game when Dashboard Visible

        Valve.VR.SteamVR_Settings.instance.pauseGameWhenDashboardVisible = true;

SteamVR Get Resolution Scale

        float sceneResolutionScale = Valve.VR.SteamVR_Camera.sceneResolutionScale;

SteamVR Set Resolution Scale

        Valve.VR.SteamVR_Camera.sceneResolutionScale = 1.0f;

Haptic Pulse Vibration

Link

Detect VR HMD and controller

Link

Reset head position

Link

Detect system button press (SteamVR Overlay) and enable/disable gameobject

Link

Get VIVE controller trigger full down/click

Link

Simple Laser Pointer

Link

Move objects to hand's position

Link

Power off SteamVR device

Link

VR Player Controller

Link

Video Tutorial

Subscribe to Action (SteamVR 2.x)

public void SubscribeToPlayerAction(SteamVR_Action_Boolean action, SteamVR_Action_Boolean.ChangeHandler onAction)
{
    action.AddOnChangeListener(onAction, SteamInputSource); //SteamInputSource can be Left Right or Any
}

Poll Action (SteamVR 2.x)

public bool CheckForPlayerAction(SteamVR_Action_Boolean action, ButtonAction buttonState = ButtonAction.PressDown)
{
    if (buttonState == ButtonAction.PressDown) return action.GetStateDown(SteamInputSource);
    if(buttonState == ButtonAction.IsPressed) return action.GetState(SteamInputSource);

    return action.GetStateUp(SteamInputSource);
}

Unreal Engine Sample Code

VIVE Tracker without HMD in Unreal Engine

Link