Fixed Humanoid Visitors settings for package

This commit is contained in:
Pascal Serrarens 2022-01-13 15:50:12 +01:00
parent fc42966b94
commit 50635c9922
8 changed files with 44 additions and 43 deletions

View File

@ -152,7 +152,7 @@ namespace Passer.Humanoid {
//Configuration_Editor.CheckExtensions((Configuration)configurationProp.objectReferenceValue); //Configuration_Editor.CheckExtensions((Configuration)configurationProp.objectReferenceValue);
HumanoidSceneInspector(); VisitorSceneInspector();
if (reload) { if (reload) {
reload = false; reload = false;
@ -177,33 +177,34 @@ namespace Passer.Humanoid {
return provider; return provider;
} }
private static string[] personalHumanoidNames; private static string[] visitorNames;
private static bool HumanoidSceneInspector() { private static bool VisitorSceneInspector() {
bool anyChanged = false; bool anyChanged = false;
if (HumanoidVisitors.visitors == null || HumanoidVisitors.visitors.Count <= 0) if (HumanoidVisitors.visitors == null || HumanoidVisitors.visitors.Count <= 0)
return false; return false;
personalHumanoidNames = new string[HumanoidVisitors.visitors.Count]; visitorNames = new string[HumanoidVisitors.visitors.Count];
int i = 0; int i = 0;
int ix; int ix;
foreach (string personalHumanoid in HumanoidVisitors.visitors) { foreach (string visitor in HumanoidVisitors.visitors) {
string name = personalHumanoid; string name = visitor;
ix = name.LastIndexOf('/'); ix = name.LastIndexOf('/');
name = name.Substring(ix + 1); name = name.Substring(ix + 1);
name = name.Substring(0, name.Length - 6); // remove .unity name = name.Substring(0, name.Length - 6); // remove .unity
personalHumanoidNames[i++] = name; visitorNames[i++] = name;
} }
string visitorSceneName = HumanoidPreferences.visitorSceneName; string visitorSceneName = HumanoidPreferences.visitorSceneName;
ix = HumanoidVisitors.visitors.FindIndex(name => name == visitorSceneName); ix = HumanoidVisitors.visitors.FindIndex(name => name == visitorSceneName);
if (ix < 0) if (ix < 0)
ix = 0; ix = 0;
ix = EditorGUILayout.Popup("Testing Visitor", ix, personalHumanoidNames); ix = EditorGUILayout.Popup("Default Visitor scene", ix, visitorNames);
anyChanged = visitorSceneName != HumanoidVisitors.visitors[ix]; anyChanged = visitorSceneName != HumanoidVisitors.visitors[ix];
if (anyChanged) if (anyChanged)
HumanoidVisitors.SetPersonalHumanoid(visitorSceneName, HumanoidVisitors.visitors[ix]); HumanoidVisitors.SetPersonalHumanoid(visitorSceneName, HumanoidVisitors.visitors[ix]);
HumanoidPreferences.visitorSceneName = HumanoidVisitors.visitors[ix]; HumanoidPreferences.visitorSceneName = HumanoidVisitors.visitors[ix];
return anyChanged; return anyChanged;
} }
} }

View File

@ -44,16 +44,13 @@ namespace Passer {
HumanoidControl humanoid = FindObjectOfType<HumanoidControl>(); HumanoidControl humanoid = FindObjectOfType<HumanoidControl>();
if (humanoid == null) { if (humanoid == null) {
string visitorSceneName = Passer.Humanoid.HumanoidPreferences.visitorSceneName; string visitorSceneName = HumanoidPreferences.visitorSceneName;
//string configurationString = UnityEditor.EditorPrefs.GetString("HumanoidConfigurationKey", "DefaultConfiguration"); if (!string.IsNullOrEmpty(visitorSceneName)) {
//Humanoid.Configuration configuration = Humanoid.Configuration.Load(configurationString);
//if (configuration != null) {
if (!string.IsNullOrEmpty(visitorSceneName)) {
Debug.Log(visitorSceneName); Debug.Log(visitorSceneName);
UnityEngine.SceneManagement.SceneManager.LoadScene(visitorSceneName, LoadSceneMode.Additive); UnityEngine.SceneManagement.SceneManager.LoadScene(visitorSceneName, LoadSceneMode.Additive);
} }
else 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 #endif
} }

View File

@ -11,30 +11,40 @@ namespace Passer.Humanoid {
public static List<string> visitors = new List<string>(); public static List<string> visitors = new List<string>();
static HumanoidVisitors() { static HumanoidVisitors() {
CheckVisitors(); //CheckVisitors();
CheckScenes();
} }
private const string fileName = "HumanoidVisitors.cs"; private const string fileName = "HumanoidVisitors.cs";
private static void CheckVisitors() { private static void CheckScenes() {
string[] names = Directory.GetFiles(Application.dataPath, "HumanoidVisitors.cs", SearchOption.AllDirectories); EditorBuildSettingsScene[] editorBuildSettingsScenes = EditorBuildSettings.scenes;
int dataPathLength = Application.dataPath.Length; foreach (EditorBuildSettingsScene editorBuildSettingsScene in editorBuildSettingsScenes) {
string localSceneName = editorBuildSettingsScene.path;
int filenameLength = fileName.Length; if (!visitors.Contains(localSceneName))
foreach (string name in names) { visitors.Add(localSceneName);
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 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) { private static bool SceneExists(string scenePath) {
foreach (EditorBuildSettingsScene buildScene in EditorBuildSettings.scenes) { foreach (EditorBuildSettingsScene buildScene in EditorBuildSettings.scenes) {
if (buildScene.path == scenePath) if (buildScene.path == scenePath)

View File

@ -607,6 +607,6 @@ MonoBehaviour:
m_GameObject: {fileID: 1361154700711664} m_GameObject: {fileID: 1361154700711664}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9827df2d9b2c2d749b3ef4a9a7f6ddc7, type: 3} m_Script: {fileID: 11500000, guid: 8a1a6c1d6d2471f4cb6059a524592f12, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:

View File

@ -1,3 +0,0 @@
{
"reference": "GUID:2a4d79bf57ab5b3479378915b7996c30"
}

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f68b2f6aa1bdf7047824e8086019d3c3
AssemblyDefinitionReferenceImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -111,6 +111,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ce6e9cb532692ab489efe3767b29ea9a, type: 3} m_Script: {fileID: 11500000, guid: ce6e9cb532692ab489efe3767b29ea9a, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
sites:
list: []
mainMenuUI: {fileID: 1092005954041834} mainMenuUI: {fileID: 1092005954041834}
siteDetailsUI: {fileID: 114506979835861256} siteDetailsUI: {fileID: 114506979835861256}
--- !u!1 &1010087135327232 --- !u!1 &1010087135327232
@ -461,7 +463,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1032603559326628} m_GameObject: {fileID: 1032603559326628}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9827df2d9b2c2d749b3ef4a9a7f6ddc7, type: 3} m_Script: {fileID: 11500000, guid: 8a1a6c1d6d2471f4cb6059a524592f12, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
--- !u!114 &8327130247146471356 --- !u!114 &8327130247146471356
@ -4371,6 +4373,7 @@ MonoBehaviour:
m_CaretBlinkRate: 0.85 m_CaretBlinkRate: 0.85
m_CaretWidth: 1 m_CaretWidth: 1
m_ReadOnly: 0 m_ReadOnly: 0
m_ShouldActivateOnSelect: 1
--- !u!1 &1614696818273909273 --- !u!1 &1614696818273909273
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0