protected virtual void OnGUI() { var resourcePath = GetResourcePath(); #if !(UNITY_5_0) var logo = AssetDatabase.LoadAssetAtPath <Texture2D>(resourcePath + "GameAssets/Textures/ui_xim_logo_01.png"); #else var logo = Resources.LoadAssetAtPath <Texture2D>(resourcePath + "GameAssets/Textures/ui_xim_logo_01.png"); #endif EditorGUILayout.Space(); var rect = GUILayoutUtility.GetRect(position.width, 40, GUI.skin.box); if (logo) { GUI.DrawTexture(rect, logo, ScaleMode.ScaleToFit); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("User Manual")) { Application.OpenURL("https://github.com/Ximmerse/SDK"); } if (GUILayout.Button("API Reference")) { Application.OpenURL("https://github.com/Ximmerse/SDK/tree/master/Unity"); } if (GUILayout.Button("FAQ")) { Application.OpenURL("https://github.com/Ximmerse/SDK/blob/master/Document/DK04/FAQ_EN.md"); } //if(GUILayout.Button("Get Help")) { //} //if(GUILayout.Button("Check for Updates")) { //} EditorGUILayout.EndHorizontal(); // if (m_PlayerPrefsEx == null) { m_PlayerPrefsEx = Resources.Load <PlayerPrefsEx>("PlayerPrefsEx-Default"); PlayerPrefsEx.Load(m_PlayerPrefsEx); } if (m_PlayerPrefsEx == null) { return; } // m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition); // DrawSeparator(); EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField("Devices", m_HeaderStyle); BeginGroup(); EditorGUILayout.BeginHorizontal(); string vrFamily = "Unknown"; // if (s_VRDeviceTypeNames == null) { BuildVRDeviceTypes(); } if (s_VRDeviceTypeNames.Length > 1) { int vrOldId = GetVRDeviceTypeIndex(); int vrNewId = EditorGUILayout.Popup("VR Device", vrOldId, s_VRDeviceTypeNames); vrFamily = s_VRDeviceTypeNames[vrNewId]; if (vrOldId != vrNewId) { SetVRDeviceTypeIndex(vrNewId); } // if (GUILayout.Button("Select", GUILayout.Width(56f))) { if (s_VRDeviceTypeSources[vrNewId] != null) { Selection.objects = new Object[1] { s_VRDeviceTypeSources[vrNewId].gameObject }; } } if (GUILayout.Button("Refresh", GUILayout.Width(56f))) { BuildVRDeviceTypes(); } } else { EditorGUILayout.LabelField("VR Device", GUILayout.Width(146f)); if (GUILayout.Button("Refresh")) { BuildVRDeviceTypes(); } } EditorGUILayout.EndHorizontal(); if (vrFamily != "Unknown") { BeginGroup(); if (DrawToggle("Use Fade", "VRDevice.useFade", true)) { DrawColorField("Fade Color", "VRDevice.fadeColor", Color.black); DrawSlider("Fade Time", "VRDevice.fadeTime", 2.0f, 0f, 5f); } if (DrawToggle("Use Reticle", "VRDevice.useReticle", true)) { DrawObjectField <Object>("Reticle Object", "VRDevice.reticleObject", null); } if (DrawToggle("Fade On Bad Tracking", "VRDevice.forceFadeOnBadTracking", false)) { BeginGroup(); DrawColorField("Fade Color", "VRDevice.badFadeColor", new Color(.305882365f, .352941185f, .392156899f, 1.0f)); DrawSlider("Fade Time", "VRDevice.badFadeTime", 0.5f, 0f, 5f); EndGroup(); } EndGroup(); } switch (DrawIntPopup("Ximmerse Device", "XimmerseDevice.type", 0x4000, s_XimmerseDeviceTypeNames, s_XimmerseDeviceTypeValues)) { case 0x1010: EndGroup(); DrawSeparator(); EditorGUILayout.LabelField("Arm Model", m_HeaderStyle); BeginGroup(); DrawVector3Field("Shoulder Position", "ArmModel.shoulderPosition", new Vector3(0.19f, -0.19f, -0.03f)); DrawVector3Field("Elbow Position", "ArmModel.elbowPosition", new Vector3(0.195f, -0.5f, -0.075f)); DrawVector3Field("Wrist Position", "ArmModel.wristPosition", new Vector3(0.0f, 0.0f, 0.25f)); DrawVector3Field("Pointer Position", "ArmModel.pointerPosition", new Vector3(0.0f, -0.009f, 0.099f)); EndGroup(); break; case 0x3200: BeginGroup(); DrawToggle("Fix Shake(Experimental)", "XimmerseTracker[Inside-out].fixShake", false); DrawSlider("M2P Latency", "XimmerseTracker[Inside-out].m2pLatency", 0.0f, 0.0f, 1.0f); EndGroup(); EndGroup(); break; case 0x4000: BeginGroup(); DrawVector3Field("Position", "XimmerseTracker[Outside-in].position", new Vector3(0, 1.675f, 1.5f)); DrawVector3Field("Rotation", "XimmerseTracker[Outside-in].rotation", new Vector3(15f, 0, 0)); EndGroup(); EndGroup(); break; default: EndGroup(); break; } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(m_PlayerPrefsEx); } // if (hasPlayAreaFeature) { DrawSeparator(); DrawPlayAreaFeature(); } // DrawSeparator(); EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField("Debug*", m_HeaderStyle); BeginGroup(); DrawEnumPopup <InputSystem.LOGLevel>("Log Level", "xdevice.logLevel", (int)InputSystem.LOGLevel.LOG_DEBUG); bool oldValue = PlayerPrefsEx.GetBool("xdevice.noServicesInAndroid", false); bool newValue = DrawToggle("No Services In Android", "xdevice.noServicesInAndroid", false); if (!oldValue && newValue) { // Debug.Log("Please edit \"Assets\\Plugins\\Android\\AndroidManifest.xml\" manually."); } EndGroup(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(m_PlayerPrefsEx); } // EditorGUILayout.EndScrollView(); }
protected virtual void OnGUI() { var resourcePath = GetResourcePath(); #if !(UNITY_5_0) var logo = AssetDatabase.LoadAssetAtPath <Texture2D>(resourcePath + "GameAssets/Textures/ui_xim_logo_01.png"); #else var logo = Resources.LoadAssetAtPath <Texture2D>(resourcePath + "GameAssets/Textures/ui_xim_logo_01.png"); #endif EditorGUILayout.Space(); var rect = GUILayoutUtility.GetRect(position.width, 40, GUI.skin.box); if (logo) { GUI.DrawTexture(rect, logo, ScaleMode.ScaleToFit); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("User Manual")) { Application.OpenURL("https://ximmerse.github.io/SDK_Doc/hardwareguide/"); } if (GUILayout.Button("API Reference")) { Application.OpenURL("https://ximmerse.github.io/SDK_Doc/unityapidoc/"); } if (GUILayout.Button("FAQ")) { Application.OpenURL("https://ximmerse.github.io/SDK_Doc/faq/"); } //if(GUILayout.Button("Get Help")) { //} //if(GUILayout.Button("Check for Updates")) { //} EditorGUILayout.EndHorizontal(); // if (m_PlayerPrefsEx == null) { m_PlayerPrefsEx = Resources.Load <PlayerPrefsEx>("PlayerPrefsEx-Default"); PlayerPrefsEx.Load(m_PlayerPrefsEx); } if (m_PlayerPrefsEx == null) { return; } // m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition); // DrawSeparator(); EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField("Devices", m_HeaderStyle); BeginGroup(); EditorGUILayout.BeginHorizontal(); string vrFamily = "Unknown"; // if (s_VRDeviceTypeNames == null) { BuildVRDeviceTypes(); } if (s_VRDeviceTypeNames.Length > 1) { int vrOldId = GetVRDeviceTypeIndex(); int vrNewId = EditorGUILayout.Popup("VR Device", vrOldId, s_VRDeviceTypeNames); vrFamily = s_VRDeviceTypeNames[vrNewId]; if (vrOldId != vrNewId) { SetVRDeviceTypeIndex(vrNewId); } // if (GUILayout.Button("Select", GUILayout.Width(56f))) { if (s_VRDeviceTypeSources[vrNewId] != null) { Selection.objects = new Object[1] { s_VRDeviceTypeSources[vrNewId].gameObject }; } } if (GUILayout.Button("Refresh", GUILayout.Width(56f))) { BuildVRDeviceTypes(); } } else { EditorGUILayout.LabelField("VR Device", GUILayout.Width(146f)); if (GUILayout.Button("Refresh")) { BuildVRDeviceTypes(); } } EditorGUILayout.EndHorizontal(); if (vrFamily != "Unknown") { BeginGroup(); if (DrawToggle("Use Fade", "VRDevice.useFade", true)) { DrawColorField("Fade Color", "VRDevice.fadeColor", Color.black); DrawSlider("Fade Time", "VRDevice.fadeTime", 2.0f, 0f, 5f); } if (DrawToggle("Use Reticle", "VRDevice.useReticle", true)) { DrawObjectField <Object>("Reticle Object", "VRDevice.reticleObject", null); } if (DrawToggle("Fade On Bad Tracking", "VRDevice.forceFadeOnBadTracking", false)) { BeginGroup(); DrawColorField("Fade Color", "VRDevice.badFadeColor", new Color(.305882365f, .352941185f, .392156899f, 1.0f)); DrawSlider("Fade Time", "VRDevice.badFadeTime", 0.5f, 0f, 5f); EndGroup(); } EndGroup(); } switch (DrawIntPopup("Ximmerse Device", "XimmerseDevice.type", 0x4000, s_XimmerseDeviceTypeNames, s_XimmerseDeviceTypeValues)) { case 0x1010: EndGroup(); DrawSeparator(); EditorGUILayout.LabelField("Daydream Controller", m_HeaderStyle); BeginGroup(); EditorGUILayout.LabelField("Left Hand"); BeginGroup(); DrawVector3Field("Position", "Daydream.leftHand.position", new Vector3(-0.2f, -0.5f, 0.0f)); DrawSlider("Length", "Daydream.leftHand.length", 0.0f, 0.0f, 1.0f); EndGroup(); EditorGUILayout.LabelField("Right Hand"); BeginGroup(); DrawVector3Field("Position", "Daydream.rightHand.position", new Vector3(0.2f, -0.5f, 0.0f)); DrawSlider("Length", "Daydream.rightHand.length", 0.0f, 0.0f, 1.0f); EndGroup(); EndGroup(); break; case 0x3000: case 0x3100: case 0x3200: BeginGroup(); DrawToggle("Fix Shake(Experimental)", "XimmerseTracker[Inside-out].fixShake", false); DrawSlider("M2P Latency", "XimmerseTracker[Inside-out].m2pLatency", 0.0f, 0.0f, 1.0f); EndGroup(); EndGroup(); break; case 0x4000: BeginGroup(); DrawVector3Field("Position", "XimmerseTracker[Outside-in].position", new Vector3(0, 1.675f, 1.5f)); DrawVector3Field("Rotation", "XimmerseTracker[Outside-in].rotation", new Vector3(15f, 0, 0)); EndGroup(); EndGroup(); break; default: EndGroup(); break; } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(m_PlayerPrefsEx); } // if (hasPlayAreaFeature) { DrawSeparator(); DrawPlayAreaFeature(); } // DrawSeparator(); EditorGUI.BeginChangeCheck(); EditorGUILayout.LabelField("Misc", m_HeaderStyle); BeginGroup(); DrawToggle("Show [Device Stats]", "UINotification-DeviceDashboard.enabled", true); if (DrawToggle("Show [Out Of Range]", "UINotification-OutOfRange.enabled", true)) { BeginGroup(); DrawObjectField <GameObject>("Hmd", "UINotification-OutOfRange-Hmd", null); DrawObjectField <GameObject>("LeftController", "UINotification-OutOfRange-LeftController", null); DrawObjectField <GameObject>("RightController", "UINotification-OutOfRange-RightController", null); EndGroup(); } EndGroup(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(m_PlayerPrefsEx); } // EditorGUILayout.EndScrollView(); }