65 lines
2.2 KiB
C#
65 lines
2.2 KiB
C#
// Copyright HTC Corporation All Rights Reserved.
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using VIVE.OpenXR.Feature;
|
|
|
|
namespace VIVE.OpenXR.Editor
|
|
{
|
|
[CustomEditor(typeof(ViveMockRuntime))]
|
|
internal class ViveMockRuntimeEditor : UnityEditor.Editor
|
|
{
|
|
private SerializedProperty enableFuture;
|
|
private SerializedProperty enableAnchor;
|
|
|
|
void OnEnable()
|
|
{
|
|
enableFuture = serializedObject.FindProperty("enableFuture");
|
|
enableAnchor = serializedObject.FindProperty("enableAnchor");
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
serializedObject.Update();
|
|
// Show a text field for description
|
|
EditorGUILayout.HelpBox("VIVE's mock runtime. Used with OpenXR MockRuntime to test unsupported extensions and features on Editor.", MessageType.Info);
|
|
|
|
if (GUILayout.Button("Install MockRuntime Library")) {
|
|
InstallMockRuntimeLibrary();
|
|
}
|
|
|
|
// check if changed
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(enableFuture);
|
|
if (EditorGUI.EndChangeCheck()) {
|
|
if (!enableFuture.boolValue) {
|
|
enableAnchor.boolValue = false;
|
|
}
|
|
}
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
EditorGUILayout.PropertyField(enableAnchor);
|
|
if (EditorGUI.EndChangeCheck()) {
|
|
if (enableAnchor.boolValue) {
|
|
enableFuture.boolValue = true;
|
|
}
|
|
}
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
|
|
public void InstallMockRuntimeLibrary() {
|
|
string sourcePathName = "Packages/com.htc.upm.vive.openxr/MockRuntime~/Win64/ViveMockRuntime.dll";
|
|
string destPath = "Assets/Plugins/Win64";
|
|
string destPathName = "Assets/Plugins/Win64/ViveMockRuntime.dll";
|
|
|
|
// check if the folder exists. If not, create it.
|
|
if (!System.IO.Directory.Exists(destPath)) {
|
|
System.IO.Directory.CreateDirectory(destPath);
|
|
}
|
|
|
|
FileUtil.CopyFileOrDirectory(sourcePathName, destPathName);
|
|
AssetDatabase.Refresh();
|
|
}
|
|
}
|
|
}
|