From 50635c992224c212f0695fb14bac1a92e4d386c9 Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Thu, 13 Jan 2022 15:50:12 +0100 Subject: [PATCH] Fixed Humanoid Visitors settings for package --- Runtime/HumanoidFree/HumanoidPreferences.cs | 17 +++---- Runtime/Sites/Scripts/Site.cs | 9 ++-- .../Visitors/Scripts}/HumanoidVisitors.cs | 44 ++++++++++++------- .../Scripts}/HumanoidVisitors.cs.meta | 0 Samples/Sites/Prefabs/Trashcan.prefab | 2 +- .../Visitors/PasserVR.HumanoidControl.asmref | 3 -- .../PasserVR.HumanoidControl.asmref.meta | 7 --- Samples/Visitors/Prefabs/HumanoidMenu.prefab | 5 ++- 8 files changed, 44 insertions(+), 43 deletions(-) rename {Samples/Visitors => Runtime/Visitors/Scripts}/HumanoidVisitors.cs (69%) rename {Samples/Visitors => Runtime/Visitors/Scripts}/HumanoidVisitors.cs.meta (100%) delete mode 100644 Samples/Visitors/PasserVR.HumanoidControl.asmref delete mode 100644 Samples/Visitors/PasserVR.HumanoidControl.asmref.meta diff --git a/Runtime/HumanoidFree/HumanoidPreferences.cs b/Runtime/HumanoidFree/HumanoidPreferences.cs index a0fcb0d..9eea7d3 100644 --- a/Runtime/HumanoidFree/HumanoidPreferences.cs +++ b/Runtime/HumanoidFree/HumanoidPreferences.cs @@ -152,7 +152,7 @@ namespace Passer.Humanoid { //Configuration_Editor.CheckExtensions((Configuration)configurationProp.objectReferenceValue); - HumanoidSceneInspector(); + VisitorSceneInspector(); if (reload) { reload = false; @@ -177,33 +177,34 @@ namespace Passer.Humanoid { return provider; } - private static string[] personalHumanoidNames; - private static bool HumanoidSceneInspector() { + private static string[] visitorNames; + private static bool VisitorSceneInspector() { bool anyChanged = false; if (HumanoidVisitors.visitors == null || HumanoidVisitors.visitors.Count <= 0) return false; - personalHumanoidNames = new string[HumanoidVisitors.visitors.Count]; + visitorNames = new string[HumanoidVisitors.visitors.Count]; int i = 0; int ix; - foreach (string personalHumanoid in HumanoidVisitors.visitors) { - string name = personalHumanoid; + foreach (string visitor in HumanoidVisitors.visitors) { + string name = visitor; ix = name.LastIndexOf('/'); name = name.Substring(ix + 1); name = name.Substring(0, name.Length - 6); // remove .unity - personalHumanoidNames[i++] = name; + visitorNames[i++] = name; } string visitorSceneName = HumanoidPreferences.visitorSceneName; ix = HumanoidVisitors.visitors.FindIndex(name => name == visitorSceneName); if (ix < 0) ix = 0; - ix = EditorGUILayout.Popup("Testing Visitor", ix, personalHumanoidNames); + 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]; + return anyChanged; } } diff --git a/Runtime/Sites/Scripts/Site.cs b/Runtime/Sites/Scripts/Site.cs index a4093a0..a787a2b 100644 --- a/Runtime/Sites/Scripts/Site.cs +++ b/Runtime/Sites/Scripts/Site.cs @@ -44,16 +44,13 @@ namespace Passer { HumanoidControl humanoid = FindObjectOfType(); if (humanoid == null) { - string visitorSceneName = Passer.Humanoid.HumanoidPreferences.visitorSceneName; - //string configurationString = UnityEditor.EditorPrefs.GetString("HumanoidConfigurationKey", "DefaultConfiguration"); - //Humanoid.Configuration configuration = Humanoid.Configuration.Load(configurationString); - //if (configuration != null) { - if (!string.IsNullOrEmpty(visitorSceneName)) { + string visitorSceneName = HumanoidPreferences.visitorSceneName; + if (!string.IsNullOrEmpty(visitorSceneName)) { Debug.Log(visitorSceneName); UnityEngine.SceneManagement.SceneManager.LoadScene(visitorSceneName, LoadSceneMode.Additive); } else - Debug.LogWarning("Could not load configuration: Visitor is not spawned"); + Debug.LogWarning("Could not start Visitor: Please select Default Visitor Scene in Edit Menu->Preferences->Humanoid Control"); } #endif } diff --git a/Samples/Visitors/HumanoidVisitors.cs b/Runtime/Visitors/Scripts/HumanoidVisitors.cs similarity index 69% rename from Samples/Visitors/HumanoidVisitors.cs rename to Runtime/Visitors/Scripts/HumanoidVisitors.cs index 56f1fef..acd6a7c 100644 --- a/Samples/Visitors/HumanoidVisitors.cs +++ b/Runtime/Visitors/Scripts/HumanoidVisitors.cs @@ -11,30 +11,40 @@ namespace Passer.Humanoid { public static List visitors = new List(); static HumanoidVisitors() { - CheckVisitors(); + //CheckVisitors(); + CheckScenes(); } private const string fileName = "HumanoidVisitors.cs"; - 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 void CheckScenes() { + EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes; + foreach (EditorBuildSettingsScene editorBuildSettingsScene in editorBuildSettingsScenes) { + string localSceneName = editorBuildSettingsScene.path; + 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) diff --git a/Samples/Visitors/HumanoidVisitors.cs.meta b/Runtime/Visitors/Scripts/HumanoidVisitors.cs.meta similarity index 100% rename from Samples/Visitors/HumanoidVisitors.cs.meta rename to Runtime/Visitors/Scripts/HumanoidVisitors.cs.meta diff --git a/Samples/Sites/Prefabs/Trashcan.prefab b/Samples/Sites/Prefabs/Trashcan.prefab index 5b5d45d..454f4cc 100644 --- a/Samples/Sites/Prefabs/Trashcan.prefab +++ b/Samples/Sites/Prefabs/Trashcan.prefab @@ -607,6 +607,6 @@ MonoBehaviour: m_GameObject: {fileID: 1361154700711664} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9827df2d9b2c2d749b3ef4a9a7f6ddc7, type: 3} + m_Script: {fileID: 11500000, guid: 8a1a6c1d6d2471f4cb6059a524592f12, type: 3} m_Name: m_EditorClassIdentifier: diff --git a/Samples/Visitors/PasserVR.HumanoidControl.asmref b/Samples/Visitors/PasserVR.HumanoidControl.asmref deleted file mode 100644 index cb6b546..0000000 --- a/Samples/Visitors/PasserVR.HumanoidControl.asmref +++ /dev/null @@ -1,3 +0,0 @@ -{ - "reference": "GUID:2a4d79bf57ab5b3479378915b7996c30" -} \ No newline at end of file diff --git a/Samples/Visitors/PasserVR.HumanoidControl.asmref.meta b/Samples/Visitors/PasserVR.HumanoidControl.asmref.meta deleted file mode 100644 index 61eb167..0000000 --- a/Samples/Visitors/PasserVR.HumanoidControl.asmref.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: f68b2f6aa1bdf7047824e8086019d3c3 -AssemblyDefinitionReferenceImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Samples/Visitors/Prefabs/HumanoidMenu.prefab b/Samples/Visitors/Prefabs/HumanoidMenu.prefab index 43d0cd7..0e2b8b5 100644 --- a/Samples/Visitors/Prefabs/HumanoidMenu.prefab +++ b/Samples/Visitors/Prefabs/HumanoidMenu.prefab @@ -111,6 +111,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ce6e9cb532692ab489efe3767b29ea9a, type: 3} m_Name: m_EditorClassIdentifier: + sites: + list: [] mainMenuUI: {fileID: 1092005954041834} siteDetailsUI: {fileID: 114506979835861256} --- !u!1 &1010087135327232 @@ -461,7 +463,7 @@ MonoBehaviour: m_GameObject: {fileID: 1032603559326628} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9827df2d9b2c2d749b3ef4a9a7f6ddc7, type: 3} + m_Script: {fileID: 11500000, guid: 8a1a6c1d6d2471f4cb6059a524592f12, type: 3} m_Name: m_EditorClassIdentifier: --- !u!114 &8327130247146471356 @@ -4371,6 +4373,7 @@ MonoBehaviour: m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 + m_ShouldActivateOnSelect: 1 --- !u!1 &1614696818273909273 GameObject: m_ObjectHideFlags: 0