private void ManageProviders() { _controlId = EditorGUIUtility.GetControlID(FocusType.Passive); if (Event.current.commandName == "ObjectSelectorClosed") { // existing provider set if (EditorGUIUtility.GetObjectPickerControlID() == (_controlId + 99) && !_editingProviderSet) { _editingProviderSet = true; if ((GameObject)EditorGUIUtility.GetObjectPickerObject() != null) { _providerSet = GameObject.Instantiate(((GameObject)EditorGUIUtility.GetObjectPickerObject())).GetComponent <ProviderSet>(); _providerSet.gameObject.name = ((GameObject)EditorGUIUtility.GetObjectPickerObject()).name; _providerSetName = _providerSet.gameObject.name; _providerSet.ImuProvider = _providerSet.gameObject.GetComponent <ImuProviderBase>(); _providerSet.GpsProvider = _providerSet.gameObject.GetComponent <GpsProviderBase>(); _providerSet.CameraProvider = _providerSet.gameObject.GetComponent <CameraProviderBase>(); _providerSet.VideoProvider = _providerSet.gameObject.GetComponent <VideoProviderBase>(); _providerSet.LightingProvider = _providerSet.gameObject.GetComponent <LightingProviderBase>(); if (_providerSet.ImuProvider != null) { _imuType = _providerSet.ImuProvider.GetType(); } if (_providerSet.GpsProvider != null) { _gpsType = _providerSet.GpsProvider.GetType(); } if (_providerSet.CameraProvider != null) { _cameraType = _providerSet.CameraProvider.GetType(); } if (_providerSet.VideoProvider != null) { _videoType = _providerSet.VideoProvider.GetType(); } if (_providerSet.LightingProvider != null) { _lightingType = _providerSet.LightingProvider.GetType(); } EditorWindow.GetWindow <SturfeeConfigurationWindow>().Focus(); } else { _editingProviderSet = false; } } } if (!_createProviderSet && !_editingProviderSet) { _imuType = null; _gpsType = null; _cameraType = null; _videoType = null; _lightingType = null; } else { EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); { //EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); var editTitle = _editingProviderSet == true ? "EDIT" : "NEW"; GUILayout.Label(editTitle + " PROVIDER SET", EditorStyles.boldLabel); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); { _providerSetName = EditorGUILayout.TextField("Provider Set Name : ", _providerSetName); if (string.IsNullOrEmpty(_providerSetName)) { var redTextStyle = new GUIStyle(); redTextStyle.normal.textColor = Color.red; EditorGUILayout.LabelField("*required", redTextStyle); } var providerSetBtns = new GUIStyle(); //providerSetBtns.normal.background = MakeTex(2, 2, _sturfeePrimaryColor); var oldColor = GUI.backgroundColor; GUI.backgroundColor = _sturfeePrimaryColor; GUI.enabled = !string.IsNullOrEmpty(_providerSetName); if (GUILayout.Button("Save", GUILayout.Width(100), GUILayout.Height(30))) { if (String.IsNullOrEmpty(_providerSetName)) { _displayEmptyNameError = true; } else { if (_providerSetName.Contains("Provider Set")) { PrefabUtility.CreatePrefab("Assets/Sturfee/Resources/Provider Sets/Custom/" + _providerSetName + ".prefab", _providerSet.gameObject); } else { PrefabUtility.CreatePrefab("Assets/Sturfee/Resources/Provider Sets/Custom/" + _providerSetName + " Provider Set.prefab", _providerSet.gameObject); } // cleanup _editingProviderSet = false; _createProviderSet = false; _imuType = null; _gpsType = null; _cameraType = null; _videoType = null; _lightingType = null; DestroyImmediate(_providerSet.gameObject); } } GUI.enabled = true; //providerSetBtns.normal.background = MakeTex(2, 2, Color.red); GUI.backgroundColor = _sturfeeErrorColor; if (GUILayout.Button("Cancel", GUILayout.Width(100), GUILayout.Height(30))) { _editingProviderSet = false; _createProviderSet = false; _imuType = null; _gpsType = null; _cameraType = null; _videoType = null; _lightingType = null; GameObject.DestroyImmediate(_providerSet.gameObject); } GUI.backgroundColor = oldColor; } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); if (Event.current.commandName == "ObjectSelectorClosed") { //Imu if (EditorGUIUtility.GetObjectPickerControlID() == (_controlId + 1)) { _imuType = ((MonoScript)EditorGUIUtility.GetObjectPickerObject()).GetClass(); if (_providerSet.gameObject.GetComponent <ImuProviderBase>() != null) { DestroyImmediate(_providerSet.gameObject.GetComponent <ImuProviderBase>()); } _providerSet.gameObject.AddComponent(_imuType); _providerSet.ImuProvider = _providerSet.gameObject.GetComponent <ImuProviderBase>(); } //Gps else if (EditorGUIUtility.GetObjectPickerControlID() == (_controlId + 2)) { _gpsType = ((MonoScript)EditorGUIUtility.GetObjectPickerObject()).GetClass(); if (_providerSet.gameObject.GetComponent <GpsProviderBase>() != null) { DestroyImmediate(_providerSet.gameObject.GetComponent <GpsProviderBase>()); } _providerSet.gameObject.AddComponent(_gpsType); _providerSet.GpsProvider = _providerSet.gameObject.GetComponent <GpsProviderBase>(); } //Camera else if (EditorGUIUtility.GetObjectPickerControlID() == (_controlId + 3)) { _cameraType = ((MonoScript)EditorGUIUtility.GetObjectPickerObject()).GetClass(); if (_providerSet.gameObject.GetComponent <CameraProviderBase>() != null) { DestroyImmediate(_providerSet.gameObject.GetComponent <CameraProviderBase>()); } _providerSet.gameObject.AddComponent(_cameraType); _providerSet.CameraProvider = _providerSet.gameObject.GetComponent <CameraProviderBase>(); } //Video else if (EditorGUIUtility.GetObjectPickerControlID() == (_controlId + 4)) { _videoType = ((MonoScript)EditorGUIUtility.GetObjectPickerObject()).GetClass(); if (_providerSet.gameObject.GetComponent <VideoProviderBase>() != null) { DestroyImmediate(_providerSet.gameObject.GetComponent <VideoProviderBase>()); } _providerSet.gameObject.AddComponent(_videoType); _providerSet.VideoProvider = _providerSet.gameObject.GetComponent <VideoProviderBase>(); } //LIghting else if (EditorGUIUtility.GetObjectPickerControlID() == (_controlId + 5)) { _lightingType = ((MonoScript)EditorGUIUtility.GetObjectPickerObject()).GetClass(); if (_providerSet.gameObject.GetComponent <LightingProviderBase>() != null) { DestroyImmediate(_providerSet.gameObject.GetComponent <LightingProviderBase>()); } _providerSet.gameObject.AddComponent(_lightingType); _providerSet.LightingProvider = _providerSet.gameObject.GetComponent <LightingProviderBase>(); } } //EditorGUILayout.BeginHorizontal(); GUIStyle providerGui = new GUIStyle(); var providerButtonWidth = 200f; var normalButtonWidth = 100f; providerGui.normal.background = MakeTex(2, 2, _sturfeeDarkBackgroundColor); EditorGUILayout.BeginVertical();// providerGui, GUILayout.MinWidth(2*_providerButtonWidth)); { if (_imuType != null) { //EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(providerGui); EditorGUILayout.BeginHorizontal(); GUILayout.Label("IMU Provider", EditorStyles.boldLabel); if (GUILayout.Button("Change", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Imuprovider", _controlId + 1); } if (GUILayout.Button("Remove", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { _imuType = null; } EditorGUILayout.EndHorizontal(); if (_imuType != null) { Editor.CreateEditor(_providerSet.gameObject.GetComponent(_imuType)).OnInspectorGUI(); } AddSpace(1); EditorGUILayout.EndVertical(); //EditorGUILayout.EndHorizontal(); AddSpace(1); } else { var imuBtnTxt = _imuType == null ? "Add IMU" : "Change IMU"; if (GUILayout.Button(imuBtnTxt, GUILayout.Width(providerButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Imuprovider", _controlId + 1); } } if (_gpsType != null) { //EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(providerGui); EditorGUILayout.BeginHorizontal(); GUILayout.Label("GPS Provider", EditorStyles.boldLabel); if (GUILayout.Button("Change", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Gpsprovider", _controlId + 2); } if (GUILayout.Button("Remove", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { _gpsType = null; } EditorGUILayout.EndHorizontal(); if (_gpsType != null) { Editor.CreateEditor(_providerSet.gameObject.GetComponent(_gpsType)).OnInspectorGUI(); } EditorGUILayout.EndVertical(); //EditorGUILayout.EndHorizontal(); AddSpace(1); } else { var gpsBtnTxt = _gpsType == null ? "Add GPS" : "Change GPS"; if (GUILayout.Button(gpsBtnTxt, GUILayout.Width(providerButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Gpsprovider", _controlId + 2); } } if (_cameraType != null) { //EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(providerGui); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Camera Provider", EditorStyles.boldLabel); if (GUILayout.Button("Change", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Cameraprovider", _controlId + 3); } if (GUILayout.Button("Remove", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { _cameraType = null; } EditorGUILayout.EndHorizontal(); if (_cameraType != null) { Editor.CreateEditor(_providerSet.gameObject.GetComponent(_cameraType)).OnInspectorGUI(); } EditorGUILayout.EndVertical(); //EditorGUILayout.EndHorizontal(); AddSpace(1); } else { var cameraBtnTxt = _cameraType == null ? "Add Camera" : "Change Camera"; if (GUILayout.Button(cameraBtnTxt, GUILayout.Width(providerButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Cameraprovider", _controlId + 3); } } if (_videoType != null) { //EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(providerGui); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Video Provider", EditorStyles.boldLabel); if (GUILayout.Button("Change", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Videoprovider", _controlId + 4); } if (GUILayout.Button("Remove", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { _videoType = null; } EditorGUILayout.EndHorizontal(); if (_videoType != null) { Editor.CreateEditor(_providerSet.gameObject.GetComponent(_videoType)).OnInspectorGUI(); } EditorGUILayout.EndVertical(); //EditorGUILayout.EndHorizontal(); AddSpace(1); } else { var videoBtnTxt = _videoType == null ? "Add Video" : "Change Video"; if (GUILayout.Button(videoBtnTxt, GUILayout.Width(providerButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Videoprovider", _controlId + 4); } } if (_lightingType != null) { //EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(providerGui); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Lighting Provider", EditorStyles.boldLabel); if (GUILayout.Button("Change", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Lightingprovider", _controlId + 5); } if (GUILayout.Button("Remove", GUILayout.Width(normalButtonWidth), GUILayout.Height(30))) { _lightingType = null; } EditorGUILayout.EndHorizontal(); if (_lightingType != null) { Editor.CreateEditor(_providerSet.gameObject.GetComponent(_lightingType)).OnInspectorGUI(); } EditorGUILayout.EndVertical(); //EditorGUILayout.EndHorizontal(); AddSpace(1); } else { var lightingBtnTxt = _lightingType == null ? "Add Lighting" : "Change Lighting"; if (GUILayout.Button(lightingBtnTxt, GUILayout.Width(providerButtonWidth), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <MonoScript>(null, false, "Lightingprovider", _controlId + 5); } } } EditorGUILayout.EndVertical(); //EditorGUILayout.BeginHorizontal(); //AddSpace(2); //if (GUILayout.Button("Save", GUILayout.Width(_providerButtonWidth), GUILayout.Height(30))) //{ // if (String.IsNullOrEmpty(_providerSetName)) // { // _displayEmptyNameError = true; // } // else // { // PrefabUtility.CreatePrefab("Assets/Sturfee/Resources/Provider Sets/Custom/" + _providerSetName + ".prefab", _providerSet.gameObject); // DestroyImmediate(_providerSet.gameObject); // } //} //AddSpace(2); //EditorGUILayout.EndHorizontal(); if (_displayEmptyNameError) { if (!String.IsNullOrEmpty(_providerSetName)) { _displayEmptyNameError = false; } else { var errorStyle = new GUIStyle(GUI.skin.label); errorStyle.normal.background = MakeTex(2, 2, new Color(160 / 255.0f, 40 / 255.0f, 40 / 255.0f)); errorStyle.normal.textColor = Color.white; errorStyle.alignment = TextAnchor.MiddleCenter; AddSpace(5); GUILayout.Label("Provider Set Name cannot be empty", errorStyle); } } // EditorGUILayout.EndHorizontal(); } }
void OnGUI() { if (_config == null) { LoadConfig(); } //GUI.skin = BuildSturfeeSkin(); GUI.skin = SturfeeSkin; _scrollPosition = GUILayout.BeginScrollView(_scrollPosition); { var boxStyle = new GUIStyle(GUI.skin.label); boxStyle.normal.background = EditorGUIUtility.whiteTexture; EditorGUILayout.BeginVertical(boxStyle);// GUI.skin.box); { EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space();//.FlexibleSpace(); _logo = AssetDatabase.LoadAssetAtPath <Texture2D>( "Assets/Sturfee/Editor/Images/sturfee_official_logo-black_small.png"); GUILayout.Label(_logo, GUILayout.MaxHeight(64), GUILayout.Width(200)); EditorGUILayout.Space();//.FlexibleSpace(); EditorGUILayout.EndHorizontal(); var buttonStyle = new GUIStyle(GUI.skin.button); //.label); buttonStyle.normal.textColor = Color.white; // _sturfeePrimaryColor; buttonStyle.normal.background = MakeTex(2, 2, _sturfeePrimaryColor); //EditorGUIUtility.whiteTexture; EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Sturfee.com", buttonStyle, GUILayout.Width(150), GUILayout.Height(30))) { Application.OpenURL("https://sturfee.com"); } if (GUILayout.Button("Developer Portal", buttonStyle, GUILayout.Width(150), GUILayout.Height(30))) { Application.OpenURL("https://developer.sturfee.com"); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); if (_accessTokenValid) { AddSpace(4); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); var dllFile = new FileInfo(@"Assets/Sturfee/Sturfee.Unity.XR.Core.dll"); string assemblyVersion = Assembly.LoadFile(dllFile.FullName).GetName().Version.ToString(); GUILayout.Label("v" + assemblyVersion); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); if (!_accessTokenValid && !_loadingSubscription) { var errorStyle = new GUIStyle(GUI.skin.label); errorStyle.normal.background = MakeTex(2, 2, new Color(160 / 255.0f, 40 / 255.0f, 40 / 255.0f)); errorStyle.normal.textColor = Color.white; errorStyle.alignment = TextAnchor.MiddleCenter; EditorGUILayout.BeginHorizontal(errorStyle); EditorGUILayout.PrefixLabel("Invalid Subscription", errorStyle); EditorGUILayout.EndHorizontal(); _currentTab = GUILayout.Toolbar(_currentTab, new string[] { "Subscription" }); _currentTab = 0; } else if (!_accessTokenValid && _loadingSubscription) { var loadingStyle = new GUIStyle(GUI.skin.label); loadingStyle.normal.background = MakeTex(2, 2, _sturfeeSecondaryColor); loadingStyle.normal.textColor = Color.white; loadingStyle.alignment = TextAnchor.MiddleCenter; GUILayout.BeginHorizontal(loadingStyle); GUI.contentColor = Color.white; EditorGUILayout.PrefixLabel("Loading Subscription...", loadingStyle); GUILayout.EndHorizontal(); } else { //var successStyle = new GUIStyle(GUI.skin.label); //successStyle.normal.background = MakeTex(2, 2, _sturfeePrimaryColor); //successStyle.normal.textColor = Color.white; //successStyle.alignment = TextAnchor.MiddleCenter; //GUILayout.BeginHorizontal(successStyle); //GUI.contentColor = Color.white; //EditorGUILayout.PrefixLabel("Active Subscription", successStyle); //GUILayout.EndHorizontal(); _currentTab = GUILayout.Toolbar(_currentTab, new string[] { "Subscription", "Config", "Objects" }); } switch (_currentTab) { case 0: GUILayout.Label("Subscription Settings", EditorStyles.boldLabel); EditorGUILayout.BeginVertical(); { _apiKey = EditorGUILayout.TextField("API Key", _apiKey); EditorGUILayout.BeginHorizontal(); { GUILayout.FlexibleSpace(); if (GUILayout.Button("Request Access", GUILayout.Width(100), GUILayout.Height(30))) { SaveConfiguration(); // get access from the API _loadingSubscription = true; CheckSubscription(_apiKey, HandleSubscriptionResult); } } EditorGUILayout.EndHorizontal(); GUILayout.Label("Available Features", EditorStyles.boldLabel); EditorGUILayout.LabelField("Access Level: Tier " + _accessLevel); Texture2D tierImage; var tierImageH = 375; var tierImageW = 450; switch (_accessLevel) { case 1: EditorGUILayout.BeginHorizontal(); { tierImage = AssetDatabase.LoadAssetAtPath <Texture2D>( "Assets/Sturfee/Editor/Images/Tier-1.png"); GUILayout.Label(tierImage, GUILayout.MaxHeight(tierImageH), GUILayout.Width(tierImageW)); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(); { GUILayout.FlexibleSpace(); EditorGUILayout.LabelField(" - Localization"); EditorGUILayout.LabelField(" - World Anchors"); EditorGUILayout.LabelField(" - Basic Light System"); EditorGUILayout.LabelField(" - Basic Surface Detection"); GUILayout.FlexibleSpace(); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); break; case 2: EditorGUILayout.BeginHorizontal(); { tierImage = AssetDatabase.LoadAssetAtPath <Texture2D>( "Assets/Sturfee/Editor/Images/Tier-2.png"); GUILayout.Label(tierImage, GUILayout.MaxHeight(tierImageH), GUILayout.Width(tierImageW)); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(); { GUILayout.FlexibleSpace(); EditorGUILayout.LabelField(" - Localization"); EditorGUILayout.LabelField(" - World Anchors"); EditorGUILayout.LabelField(" - Basic Light System"); EditorGUILayout.LabelField(" - Basic Surface Detection"); EditorGUILayout.LabelField(" - Full Terrain Detection"); GUILayout.FlexibleSpace(); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); break; case 3: EditorGUILayout.BeginHorizontal(); { tierImage = AssetDatabase.LoadAssetAtPath <Texture2D>( "Assets/Sturfee/Editor/Images/Tier-3.png"); GUILayout.Label(tierImage, GUILayout.MaxHeight(tierImageH), GUILayout.Width(tierImageW)); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(); { GUILayout.FlexibleSpace(); EditorGUILayout.LabelField(" - Localization"); EditorGUILayout.LabelField(" - World Anchors"); EditorGUILayout.LabelField(" - Basic Light System"); EditorGUILayout.LabelField(" - Basic Surface Detection"); EditorGUILayout.LabelField(" - Full Terrain Detection"); EditorGUILayout.LabelField(" - Full Building Detection"); GUILayout.FlexibleSpace(); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); break; case 4: EditorGUILayout.BeginHorizontal(); { tierImage = AssetDatabase.LoadAssetAtPath <Texture2D>( "Assets/Sturfee/Editor/Images/Tier-4.png"); GUILayout.Label(tierImage, GUILayout.MaxHeight(tierImageH), GUILayout.Width(tierImageW)); EditorGUILayout.Space(); EditorGUILayout.BeginVertical(); { GUILayout.FlexibleSpace(); EditorGUILayout.LabelField(" - Localization"); EditorGUILayout.LabelField(" - World Anchors"); EditorGUILayout.LabelField(" - Basic Light System"); EditorGUILayout.LabelField(" - Basic Surface Detection"); EditorGUILayout.LabelField(" - Full Terrain Detection"); EditorGUILayout.LabelField(" - Full Building Detection"); EditorGUILayout.LabelField(" - Dynamic Objects"); GUILayout.FlexibleSpace(); } EditorGUILayout.EndVertical(); } EditorGUILayout.EndHorizontal(); break; default: break; } } EditorGUILayout.EndVertical(); break; case 1: EditorGUILayout.BeginVertical(); { EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); GUILayout.Label("Caching", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("Memory Cache"); MemCacheLimit = EditorGUILayout.IntSlider(_config.MemoryCacheLimit, 0, 25); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel("File Cache"); FileCacheLimit = EditorGUILayout.IntSlider(_config.FileCacheLimit, 0, 100); EditorGUILayout.EndHorizontal(); AddSpace(2); if (GUILayout.Button("Clear", GUILayout.Width(100), GUILayout.Height(30))) { Sturfee.Unity.XR.Core.Tile.CacheManager.Clear(); } } EditorGUILayout.EndVertical(); EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); EditorGUILayout.BeginVertical(); { GUILayout.Label("Custom XR Session Providers", EditorStyles.boldLabel); _createProviderSet = (GameObject.FindObjectsOfType <ProviderSet>().Length == 1); if (!_createProviderSet && GUILayout.Button("Create New Provider Set", GUILayout.Width(200), GUILayout.Height(30))) { _providerSet = new GameObject("Provider set").AddComponent <ProviderSet>(); _providerSetName = null; } // You can always edit your Provider set by going to Resources/Provider Sets/Custom if (!_editingProviderSet && !_createProviderSet && GUILayout.Button("Edit Existing Provider Set", GUILayout.Width(200), GUILayout.Height(30))) { EditorGUIUtility.ShowObjectPicker <GameObject>(null, false, "Set", _controlId + 99); } ManageProviders(); } EditorGUILayout.EndVertical(); break; case 2: EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); if (!_setupFinished && !SturfeeLayersExist()) { GUILayout.Label("Unity Setup", EditorStyles.boldLabel); if (GUILayout.Button("First Time Setup", GUILayout.Width(200), GUILayout.Height(30))) { CreateSturfeeLayers(); _setupFinished = true; } } else { GUILayout.Label("XR Objects", EditorStyles.boldLabel); if (GUILayout.Button("Create XRSession", GUILayout.Width(200), GUILayout.Height(30))) { UnityEngine.Object prefab = AssetDatabase.LoadAssetAtPath("Assets/Sturfee/XRSession/SturfeeXRSession.prefab", typeof(GameObject)); GameObject clone = Instantiate(prefab, Vector3.zero, Quaternion.identity) as GameObject; clone.name = prefab.name; } if (GUILayout.Button("Create XRCamera", GUILayout.Width(200), GUILayout.Height(30))) { UnityEngine.Object prefab = AssetDatabase.LoadAssetAtPath("Assets/Sturfee/XRSession/SturfeeXRCamera.prefab", typeof(GameObject)); GameObject clone = Instantiate(prefab, Vector3.zero, Quaternion.identity) as GameObject; clone.name = prefab.name; } if (GUILayout.Button("Create WorldAnchor", GUILayout.Width(200), GUILayout.Height(30))) { var anchor = new GameObject().AddComponent <WorldAnchor>(); anchor.gameObject.name = "WorldAnchor"; } } break; } //groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Settings", groupEnabled); //myBool = EditorGUILayout.Toggle("Toggle", myBool); //myFloat = EditorGUILayout.Slider("Slider", myFloat, -3, 3); //EditorGUILayout.EndToggleGroup(); } EditorGUILayout.EndScrollView(); }