55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
|
using System.Collections.Generic;
|
||
|
using System.Runtime.InteropServices;
|
||
|
using UnityEngine.Experimental.XR;
|
||
|
using UnityEngine.XR;
|
||
|
using UnityEngine.XR.Management;
|
||
|
|
||
|
namespace Unity.XR.MockHMD
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Loader for Mock HMD.
|
||
|
/// </summary>
|
||
|
public class MockHMDLoader : XRLoaderHelper
|
||
|
{
|
||
|
private static List<XRDisplaySubsystemDescriptor> s_DisplaySubsystemDescriptors =
|
||
|
new List<XRDisplaySubsystemDescriptor>();
|
||
|
private static List<XRInputSubsystemDescriptor> s_InputSubsystemDescriptors =
|
||
|
new List<XRInputSubsystemDescriptor>();
|
||
|
|
||
|
public override bool Initialize()
|
||
|
{
|
||
|
CreateSubsystem<XRDisplaySubsystemDescriptor, XRDisplaySubsystem>(s_DisplaySubsystemDescriptors, "MockHMD Display");
|
||
|
CreateSubsystem<XRInputSubsystemDescriptor, XRInputSubsystem>(s_InputSubsystemDescriptors, "MockHMD Head Tracking");
|
||
|
|
||
|
var buildSettings = MockHMDBuildSettings.Instance;
|
||
|
if (buildSettings != null)
|
||
|
{
|
||
|
MockHMD.SetRenderMode(buildSettings.renderMode);
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public override bool Start()
|
||
|
{
|
||
|
StartSubsystem<XRDisplaySubsystem>();
|
||
|
StartSubsystem<XRInputSubsystem>();
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public override bool Stop()
|
||
|
{
|
||
|
StopSubsystem<XRInputSubsystem>();
|
||
|
StopSubsystem<XRDisplaySubsystem>();
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public override bool Deinitialize()
|
||
|
{
|
||
|
DestroySubsystem<XRInputSubsystem>();
|
||
|
DestroySubsystem<XRDisplaySubsystem>();
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|