/// <summary> /// OnGUI. /// </summary> void OnGUI() { mScrollPosition = EditorGUILayout.BeginScrollView(mScrollPosition, new GUILayoutOption[0]); for (int i = 0, countI = mUnityScenes.ListUnityScene.Count; i < countI; i++) { MyUGUIConfigUnityScene unityScene = mUnityScenes.ListUnityScene[i]; EditorGUILayout.BeginHorizontal(); unityScene.IsFoldOut = EditorGUILayout.Foldout(unityScene.IsFoldOut, unityScene.ID.ToString()); if (unityScene.IsFoldOut) { if (GUILayout.Button("+", GUILayout.Width(30))) { unityScene.ListScene.Add(new MyUGUIConfigScene() { IsFoldOut = true, IsInitWhenLoadUnityScene = false, IsHideHUD = false, FadeInDuration = 0.2f, FadeOutDuration = 0.2f, }); } EditorGUI.BeginDisabledGroup(unityScene.ListScene.Count == 0); if (GUILayout.Button("-", GUILayout.Width(30))) { unityScene.ListScene.RemoveAt(unityScene.ListScene.Count - 1); } EditorGUI.EndDisabledGroup(); } EditorGUILayout.EndHorizontal(); if (unityScene.IsFoldOut) { EditorGUI.indentLevel++; unityScene.SceneNameIndex = EditorGUILayout.Popup("Unity Scene", unityScene.SceneNameIndex, mUnitySceneNames); unityScene.SceneName = mUnitySceneNames[unityScene.SceneNameIndex]; unityScene.SceneName = unityScene.SceneName.Equals("<null>") ? string.Empty : unityScene.SceneName.Substring(0, unityScene.SceneName.Length - 6); unityScene.HUDScriptNameIndex = EditorGUILayout.Popup("HUD Script (Nullable)", unityScene.HUDScriptNameIndex, mScriptNames); unityScene.HUDScriptName = mScriptNames[unityScene.HUDScriptNameIndex]; unityScene.HUDScriptName = unityScene.HUDScriptName.Equals("<null>") ? string.Empty : unityScene.HUDScriptName.Substring(0, unityScene.HUDScriptName.Length - 3); unityScene.HUDPrefabNameIndex = EditorGUILayout.Popup("HUD Prefab (Nullable)", unityScene.HUDPrefabNameIndex, mHUDPrefabNames); unityScene.HUDPrefabName = mHUDPrefabNames[unityScene.HUDPrefabNameIndex]; unityScene.HUDPrefabName = unityScene.HUDPrefabName.Equals("<null>") ? string.Empty : unityScene.HUDPrefabName.Substring(0, unityScene.HUDPrefabName.Length - 7); for (int j = 0, countJ = unityScene.ListScene.Count; j < countJ; j++) { MyUGUIConfigScene scene = unityScene.ListScene[j]; scene.IsFoldOut = EditorGUILayout.Foldout(scene.IsFoldOut, scene.ID.ToString()); if (scene.IsFoldOut) { EditorGUI.indentLevel++; scene.ID = (ESceneID)EditorGUILayout.EnumPopup("ID", scene.ID); scene.ScriptNameIndex = EditorGUILayout.Popup("Script", scene.ScriptNameIndex, mScriptNames); scene.ScriptName = mScriptNames[scene.ScriptNameIndex]; scene.ScriptName = scene.ScriptName.Equals("<null>") ? string.Empty : scene.ScriptName.Substring(0, scene.ScriptName.Length - 3); scene.PrefabNameIndex = EditorGUILayout.Popup("Prefab", scene.PrefabNameIndex, mScenePrefabNames); scene.PrefabName = mScenePrefabNames[scene.PrefabNameIndex]; scene.PrefabName = scene.PrefabName.Equals("<null>") ? string.Empty : scene.PrefabName.Substring(0, scene.PrefabName.Length - 7); scene.IsInitWhenLoadUnityScene = EditorGUILayout.Toggle("Is Init When Load Unity Scene", scene.IsInitWhenLoadUnityScene); scene.IsHideHUD = EditorGUILayout.Toggle("Is Hide HUD", scene.IsHideHUD); scene.FadeInDuration = EditorGUILayout.FloatField("Fade-In Duration", scene.FadeInDuration); scene.FadeOutDuration = EditorGUILayout.FloatField("Fade-Out Duration", scene.FadeOutDuration); EditorGUI.indentLevel--; } } EditorGUI.indentLevel--; } if (i < countI - 1) { EditorGUILayout.LabelField(string.Empty); } } EditorGUILayout.EndScrollView(); EditorUtility.SetDirty(mUnityScenes); EditorGUILayout.LabelField(string.Empty); if (GUILayout.Button("Reset", GUILayout.Width(100))) { _DeleteAssetFile(); _LoadAssetFile(); _AddNewUnityScenes(); Debug.Log("[MyClasses] Data was reset."); } }
/// <summary> /// Correct values. /// </summary> private void _CorrectValues() { mScriptNames = _GetScriptNames(); mUnitySceneNames = _GetUnitySceneNames(); mScenePrefabNames = _GetPrefabNames(MyUGUIManager.SCENE_DIRECTORY); mHUDPrefabNames = _GetPrefabNames(MyUGUIManager.HUD_DIRECTORY); for (int i = 0, countI = mUnityScenes.ListUnityScene.Count; i < countI; i++) { MyUGUIConfigUnityScene unityScene = mUnityScenes.ListUnityScene[i]; if (!string.IsNullOrEmpty(unityScene.SceneName) && (unityScene.SceneNameIndex >= mUnitySceneNames.Length || !unityScene.SceneName.Equals(mUnitySceneNames[unityScene.SceneNameIndex]))) { string unitySceneName = unityScene.SceneName + ".unity"; unityScene.SceneName = string.Empty; unityScene.SceneNameIndex = 0; for (int j = 0; j < mUnitySceneNames.Length; j++) { if (unitySceneName.Equals(mUnitySceneNames[j])) { unityScene.SceneNameIndex = j; break; } } if (unityScene.SceneNameIndex > 0) { unityScene.SceneName = mUnitySceneNames[unityScene.SceneNameIndex]; unityScene.SceneName = unityScene.SceneName.Equals("<null>") ? string.Empty : unityScene.SceneName.Substring(0, unityScene.SceneName.Length - 6); } } if (!string.IsNullOrEmpty(unityScene.HUDScriptName) && (unityScene.HUDScriptNameIndex >= mScriptNames.Length || !unityScene.HUDScriptName.Equals(mScriptNames[unityScene.HUDScriptNameIndex]))) { string hudScriptName = unityScene.HUDScriptName + ".cs"; unityScene.HUDScriptName = string.Empty; unityScene.HUDScriptNameIndex = 0; for (int j = 0; j < mScriptNames.Length; j++) { if (hudScriptName.Equals(mScriptNames[j])) { unityScene.HUDScriptNameIndex = j; break; } } if (unityScene.HUDScriptNameIndex > 0) { unityScene.HUDScriptName = mScriptNames[unityScene.HUDScriptNameIndex]; unityScene.HUDScriptName = unityScene.HUDScriptName.Equals("<null>") ? string.Empty : unityScene.HUDScriptName.Substring(0, unityScene.HUDScriptName.Length - 3); } } if (!string.IsNullOrEmpty(unityScene.HUDPrefabName) && (unityScene.HUDPrefabNameIndex >= mHUDPrefabNames.Length || !unityScene.HUDPrefabName.Equals(mHUDPrefabNames[unityScene.HUDPrefabNameIndex]))) { string hudPrefabName = unityScene.HUDPrefabName + ".prefab"; unityScene.HUDPrefabName = string.Empty; unityScene.HUDPrefabNameIndex = 0; for (int j = 0; j < mHUDPrefabNames.Length; j++) { if (hudPrefabName.Equals(mHUDPrefabNames[j])) { unityScene.HUDPrefabNameIndex = j; break; } } if (unityScene.HUDPrefabNameIndex > 0) { unityScene.HUDPrefabName = mHUDPrefabNames[unityScene.HUDPrefabNameIndex]; unityScene.HUDPrefabName = unityScene.HUDPrefabName.Equals("<null>") ? string.Empty : unityScene.HUDPrefabName.Substring(0, unityScene.HUDPrefabName.Length - 7); } } for (int j = 0, countJ = unityScene.ListScene.Count; j < countJ; j++) { MyUGUIConfigScene scene = unityScene.ListScene[j]; if (scene.ScriptNameIndex >= mScriptNames.Length || !scene.ScriptName.Equals(mScriptNames[scene.ScriptNameIndex])) { string scriptName = scene.ScriptName + ".cs"; scene.ScriptName = string.Empty; scene.ScriptNameIndex = 0; for (int k = 0; k < mScriptNames.Length; k++) { if (scriptName.Equals(mScriptNames[k])) { scene.ScriptNameIndex = k; break; } } if (scene.ScriptNameIndex > 0) { scene.ScriptName = mScriptNames[scene.ScriptNameIndex]; scene.ScriptName = scene.ScriptName.Equals("<null>") ? string.Empty : scene.ScriptName.Substring(0, scene.ScriptName.Length - 3); } } if (scene.PrefabNameIndex >= mScenePrefabNames.Length || !scene.PrefabName.Equals(mScenePrefabNames[scene.PrefabNameIndex])) { string prefabName = scene.PrefabName + ".prefab"; scene.PrefabName = string.Empty; scene.PrefabNameIndex = 0; for (int k = 0; k < mScenePrefabNames.Length; k++) { if (prefabName.Equals(mScenePrefabNames[k])) { scene.PrefabNameIndex = k; break; } } if (scene.PrefabNameIndex > 0) { scene.PrefabName = mScenePrefabNames[scene.PrefabNameIndex]; scene.PrefabName = scene.PrefabName.Equals("<null>") ? string.Empty : scene.PrefabName.Substring(0, scene.PrefabName.Length - 7); } } } } }