diff --git a/Editor/Sites/SiteNavigator_Editor.cs b/Editor/Sites/SiteNavigator_Editor.cs index bec2d88..a0d7164 100644 --- a/Editor/Sites/SiteNavigator_Editor.cs +++ b/Editor/Sites/SiteNavigator_Editor.cs @@ -9,43 +9,45 @@ namespace Passer { public class SiteNavigator_Editor : Editor { protected SiteNavigator siteNavigator; - protected string[] siteNames; + //protected string[] siteNames; #region Enable protected virtual void OnEnable() { siteNavigator = (SiteNavigator)target; - InitializeSiteNames(); + //InitializeSiteNames(); } - protected virtual void InitializeSiteNames() { - //HumanoidVisitors.CheckScenes(); - //List humanoidVisitors = HumanoidVisitors.visitors; + //protected virtual void InitializeSiteNames() { + // //HumanoidVisitors.CheckScenes(); + // //List humanoidVisitors = HumanoidVisitors.visitors; - EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes; - int siteCount = editorBuildSettingsScenes.Length; // - HumanoidVisitors.visitors.Count; + // EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes; + // int siteCount = editorBuildSettingsScenes.Length; // - HumanoidVisitors.visitors.Count; - List siteList = new List(); - siteList.Add("-none-"); - for (int i = 0; i < siteCount; i++) { - if (!editorBuildSettingsScenes[i].enabled) { - continue; - } + // List siteList = new List(); + // siteList.Add("-none-"); + // for (int i = 0; i < siteCount; i++) { + // if (!editorBuildSettingsScenes[i].enabled) { + // continue; + // } - string sceneName = editorBuildSettingsScenes[i].path; - int lastSlash = sceneName.LastIndexOf('/'); - sceneName = sceneName.Substring(lastSlash + 1); - sceneName = sceneName.Substring(0, sceneName.Length - 6); // remove .unity + // string sceneName = editorBuildSettingsScenes[i].path; + // if (sceneName.Length > 6) { + // int lastSlash = sceneName.LastIndexOf('/'); + // sceneName = sceneName.Substring(lastSlash + 1); + // sceneName = sceneName.Substring(0, sceneName.Length - 6); // remove .unity - // Does not work at the moment the visitors are all scenes - //bool isVisitor = IsHumanoidVisitor(sceneName, humanoidVisitors); - //if (!isVisitor) { - siteList.Add(sceneName); - //} - } - siteNames = siteList.ToArray();//new string[siteCount]; - } + // // Does not work at the moment the visitors are all scenes + // //bool isVisitor = IsHumanoidVisitor(sceneName, humanoidVisitors); + // //if (!isVisitor) { + // siteList.Add(sceneName); + // //} + // } + // } + // siteNames = siteList.ToArray();//new string[siteCount]; + //} private bool IsHumanoidVisitor(string sceneName, List humanoidVisitors) { foreach(string visitor in humanoidVisitors) { @@ -92,34 +94,17 @@ namespace Passer { } protected void StartSceneInspector() { + SerializedProperty startSceneProp = serializedObject.FindProperty(nameof(siteNavigator.startScene)); + SceneAsset sceneAsset = AssetDatabase.LoadAssetAtPath(startSceneProp.stringValue); + GUIContent text = new GUIContent( "Start Scene", "" ); + sceneAsset = (SceneAsset)EditorGUILayout.ObjectField(text, sceneAsset, typeof(SceneAsset), false); - SerializedProperty startSceneProp = serializedObject.FindProperty(nameof(siteNavigator.startScene)); + startSceneProp.stringValue = AssetDatabase.GetAssetPath(sceneAsset); - if (siteNames == null || siteNames.Length == 0) { - startSceneProp.stringValue = ""; - return; - } - - int ix = 0; - for (; ix < siteNames.Length; ix++) { - if (siteNames[ix] == startSceneProp.stringValue) - break; - } - if (ix == siteNames.Length) ix = 0; - if (Application.isPlaying) { - using (new EditorGUI.DisabledScope(true)) { - EditorGUILayout.Popup(text, ix, siteNames); - } - } - else { - - ix = EditorGUILayout.Popup(text, ix, siteNames); - startSceneProp.stringValue = siteNames[ix]; - } } #endregion Inspector diff --git a/Runtime/Sites/Scripts/SiteNavigator.cs b/Runtime/Sites/Scripts/SiteNavigator.cs index c8a05de..f4dc407 100644 --- a/Runtime/Sites/Scripts/SiteNavigator.cs +++ b/Runtime/Sites/Scripts/SiteNavigator.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; +using UnityEngine.SceneManagement; namespace Passer { @@ -65,7 +66,8 @@ namespace Passer { #if UNITY_EDITOR if (startScene != null && startScene != "" && startScene != "-none-") { Debug.Log("Load scene " + startScene); - UnityEngine.SceneManagement.SceneManager.LoadScene(startScene); + UnityEditor.SceneManagement.EditorSceneManager.LoadSceneInPlayMode(startScene, new LoadSceneParameters(LoadSceneMode.Additive)); + //UnityEngine.SceneManagement.SceneManager.LoadScene(startScene); currentSite = new HistoryEntry() { siteName = "directload", siteLocation = "passervr.com/sites/start",