From 1f4e41068864ab0b2ed0785db79bac05a74fdd6e Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Thu, 3 Feb 2022 10:42:50 +0100 Subject: [PATCH] Visitor scene does not have to be in build settings anymore (only to select it in preferences for now). --- Editor/HumanoidFree/Configuration_Editor.cs | 2 - Runtime/HumanoidFree/HumanoidPreferences.cs | 35 +------- Runtime/Sites/Scripts/Site.cs | 6 +- Runtime/Visitors/Scripts/HumanoidVisitors.cs | 85 +------------------- 4 files changed, 6 insertions(+), 122 deletions(-) diff --git a/Editor/HumanoidFree/Configuration_Editor.cs b/Editor/HumanoidFree/Configuration_Editor.cs index 0ea6648..e8f9ef5 100644 --- a/Editor/HumanoidFree/Configuration_Editor.cs +++ b/Editor/HumanoidFree/Configuration_Editor.cs @@ -302,8 +302,6 @@ namespace Passer.Humanoid { ix = 0; ix = EditorGUILayout.Popup("Testing Visitor", ix, personalHumanoidNames); anyChanged = humanoidSceneNameProp.stringValue != HumanoidVisitors.visitors[ix]; - if (anyChanged) - Passer.Humanoid.HumanoidVisitors.SetPersonalHumanoid(humanoidSceneNameProp.stringValue, HumanoidVisitors.visitors[ix]); humanoidSceneNameProp.stringValue = HumanoidVisitors.visitors[ix]; return anyChanged; diff --git a/Runtime/HumanoidFree/HumanoidPreferences.cs b/Runtime/HumanoidFree/HumanoidPreferences.cs index b04947b..6434544 100644 --- a/Runtime/HumanoidFree/HumanoidPreferences.cs +++ b/Runtime/HumanoidFree/HumanoidPreferences.cs @@ -131,7 +131,7 @@ namespace Passer.Humanoid { #if UNITY_EDITOR static class HumanoidPreferencesIMGUIRegister { - public static bool reload; + //public static bool reload; [SettingsProvider] public static SettingsProvider CreateHumanoidSettingsProvider() { @@ -139,39 +139,8 @@ namespace Passer.Humanoid { label = "Humanoid Control", guiHandler = (searchContext) => { - //SerializedObject serializedSettings = HumanoidPreferences.GetOrCreateSerializedSettings(); - - //SerializedProperty configurationProp = serializedSettings.FindProperty("configuration"); - //Configuration oldConfiguration = (Configuration)configurationProp.objectReferenceValue; - - //configurationProp.objectReferenceValue = EditorGUILayout.ObjectField("Configuration", configurationProp.objectReferenceValue, typeof(Configuration), false); - //SerializedObject serializedConfiguration = new SerializedObject(configurationProp.objectReferenceValue); - - //bool anyChanged = false; - //anyChanged |= (configurationProp.objectReferenceValue != oldConfiguration); - //anyChanged |= Configuration_Editor.ConfigurationGUI(serializedConfiguration); - //serializedConfiguration.ApplyModifiedProperties(); - //serializedSettings.ApplyModifiedProperties(); - - //Configuration_Editor.CheckExtensions((Configuration)configurationProp.objectReferenceValue); - VisitorSceneInspector(); - // if (reload) { - // reload = false; - //#if hUNET - // OnLoadHumanoidPlayerUnet.CheckHumanoidPlayer(); - //#endif - //#if hPHOTON1 || hPHOTON2 - // OnLoadHumanoidPlayerPun.CheckHumanoidPlayer(); - //#endif - //#if hBOLT - // OnLoadHumanoidPlayerBolt.CheckHumanoidPlayer(); - //#endif - //#if hMIRROR - // OnLoadHumanoidPlayerMirror.CheckHumanoidPlayer(); - //#endif - // } }, keywords = new HashSet( new[] { "Humanoid", "Oculus", "SteamVR" } @@ -207,8 +176,6 @@ namespace Passer.Humanoid { ix = 0; ix = EditorGUILayout.Popup("Default Visitor scene", ix, visitorNames); anyChanged = visitorSceneName != HumanoidVisitors.visitors[ix]; - if (anyChanged) - HumanoidVisitors.SetPersonalHumanoid(visitorSceneName, HumanoidVisitors.visitors[ix]); HumanoidPreferences.visitorSceneName = HumanoidVisitors.visitors[ix]; diff --git a/Runtime/Sites/Scripts/Site.cs b/Runtime/Sites/Scripts/Site.cs index c160e7e..776d972 100644 --- a/Runtime/Sites/Scripts/Site.cs +++ b/Runtime/Sites/Scripts/Site.cs @@ -45,10 +45,10 @@ namespace Passer { HumanoidControl humanoid = FindObjectOfType(); if (humanoid == null) { - string visitorSceneName = HumanoidPreferences.visitorSceneName; - if (!string.IsNullOrEmpty(visitorSceneName)) { + string visitorScenePath = HumanoidPreferences.visitorSceneName; + if (!string.IsNullOrEmpty(visitorScenePath)) { //Debug.Log(visitorSceneName); - UnityEngine.SceneManagement.SceneManager.LoadScene(visitorSceneName, LoadSceneMode.Additive); + UnityEditor.SceneManagement.EditorSceneManager.LoadSceneInPlayMode(visitorScenePath, new LoadSceneParameters(LoadSceneMode.Additive)); } else Debug.LogWarning("Could not start Visitor: Please select Default Visitor Scene in Edit Menu->Preferences->Humanoid Control"); diff --git a/Runtime/Visitors/Scripts/HumanoidVisitors.cs b/Runtime/Visitors/Scripts/HumanoidVisitors.cs index d14a956..4f3c4f3 100644 --- a/Runtime/Visitors/Scripts/HumanoidVisitors.cs +++ b/Runtime/Visitors/Scripts/HumanoidVisitors.cs @@ -1,6 +1,4 @@ using System.Collections.Generic; -using System.IO; -using UnityEngine; using UnityEditor; namespace Passer.Humanoid { @@ -12,97 +10,18 @@ namespace Passer.Humanoid { public static List visitors = new List(); static HumanoidVisitors() { - //CheckVisitors(); CheckScenes(); } - private const string fileName = "HumanoidVisitors.cs"; - public static void CheckScenes() { EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes; foreach (EditorBuildSettingsScene editorBuildSettingsScene in editorBuildSettingsScenes) { string localSceneName = editorBuildSettingsScene.path; - if (!visitors.Contains(localSceneName)) + if (!visitors.Contains(localSceneName)) { visitors.Add(localSceneName); + } } } - - //private static void CheckVisitors() { - // string[] names = Directory.GetFiles(Application.dataPath, "HumanoidVisitors.cs", SearchOption.AllDirectories); - // int dataPathLength = Application.dataPath.Length; - - // int filenameLength = fileName.Length; - // foreach (string name in names) { - // string dirName = name.Substring(0, name.Length - filenameLength); - - // string[] sceneNames = Directory.GetFiles(dirName, "*.unity"); - - // foreach (string sceneName in sceneNames) { - // string localSceneName = "Assets" + sceneName.Substring(dataPathLength); - // localSceneName = localSceneName.Replace('\\', '/'); - // if (!visitors.Contains(localSceneName)) - // visitors.Add(localSceneName); - // } - // } - //} - - private static bool SceneExists(string scenePath) { - foreach (EditorBuildSettingsScene buildScene in EditorBuildSettings.scenes) { - if (buildScene.path == scenePath) - return true; - } - return false; - } - - private static void AddScene(string scenePath) { - if (SceneExists(scenePath)) - return; - - //Debug.Log("Add " + scenePath); - - EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes; - EditorBuildSettingsScene[] newEditorBuildSettingsScenes = new EditorBuildSettingsScene[editorBuildSettingsScenes.Length + 1]; - - int i; - for (i = 0; i < editorBuildSettingsScenes.Length; i++) { - newEditorBuildSettingsScenes[i] = editorBuildSettingsScenes[i]; - } - newEditorBuildSettingsScenes[i] = new EditorBuildSettingsScene(scenePath, true); - EditorBuildSettings.scenes = newEditorBuildSettingsScenes; - } - - private static void RemoveScene(string scenePath) { - if (!SceneExists(scenePath)) - return; - - //Debug.Log("Remove " + scenePath); - - EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes; - EditorBuildSettingsScene[] newEditorBuildSettingsScenes = new EditorBuildSettingsScene[editorBuildSettingsScenes.Length - 1]; - - int i; - int j = 0; - bool found = false; - for (i = 0; i < editorBuildSettingsScenes.Length; i++) { - if (editorBuildSettingsScenes[i].path != scenePath) { - // Check if we do not find the scene to remove - if (j < editorBuildSettingsScenes.Length - 1) - newEditorBuildSettingsScenes[j++] = editorBuildSettingsScenes[i]; - } - else - found = true; - } - if (found) - EditorBuildSettings.scenes = newEditorBuildSettingsScenes; - } - - public static void SetPersonalHumanoid(string oldSceneName, string newSceneName) { - if (!HumanoidVisitors.visitors.Contains(newSceneName)) - return; - - RemoveScene(oldSceneName); - AddScene(newSceneName); - } } #endif } \ No newline at end of file