public static FinalPatchEditorData Load() { FinalPatchEditorData data = Resources.Load <FinalPatchEditorData>("FinalPatchEditorData"); if (data == null) { #if UNITY_EDITOR data = CreateInstance <FinalPatchEditorData>(); string dir = Path.GetDirectoryName(FinalPatchConst.FINAL_PATCH_EDITOR_DATA_PATH); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } UnityEditor.AssetDatabase.CreateAsset(data, FinalPatchConst.FINAL_PATCH_EDITOR_DATA_PATH); UnityEditor.AssetDatabase.Refresh(); #endif } return(data); }
private void OnEnable() { FinalPatchData = FinalPatchData.Load(); FinalPatchEditorData = FinalPatchEditorData.Load(); Localization.OnLanguageChanged += OnLanguageChanged; m_mainTabSet = new TabSet(new Tab[] { new Tab(new BuildTabView(this)), new Tab(new DeployTabView(this)), new Tab(new AdvancedTabView(this)), }, FinalPatchEditorData.activeTab); m_mainTabSet.OnActiveIndexChanged += OnActiveTabChanged; m_tabLabels = new string[] { "tab_label_build", "tab_label_deploy", "tab_label_advanced", }; OnLanguageChanged(); }
private void DrawBuild(BuildVersion buildVersion) { if (!string.IsNullOrEmpty(m_searchText) && (!buildVersion.name.Contains(m_searchText) && !buildVersion.description.Contains(m_searchText))) { return; } bool browse = false; bool copy = false; bool build = false; bool edit = false; bool delete = false; bool save = false; bool discard = false; string foldoutName = $"{buildVersion.name}[{buildVersion.version}]"; EditorGUILayout.BeginVertical(GUI.skin.box); { EditorGUILayout.BeginHorizontal(); { buildVersion.foldout = EditorGUILayout.Foldout(buildVersion.foldout, foldoutName) || buildVersion.isEdit; BBGoGUI.BeginEnable(!m_hasEdit); { browse = GUILayout.Button(m_contentReveal, BBGoGUI.styleCompactButton, m_contentOptions); copy = GUILayout.Button(m_contentCopy, BBGoGUI.styleCompactButton, m_contentOptions); build = GUILayout.Button(m_contentBuild, BBGoGUI.styleCompactButton, m_contentOptions); } BBGoGUI.EndEnable(); } EditorGUILayout.EndHorizontal(); if (buildVersion.foldout) { if (buildVersion.isEdit) { bool canSave = true; if (string.IsNullOrEmpty(buildVersion.name) || m_managerWindow.FinalPatchEditorData.builds.Find((b) => b != buildVersion && b.name == buildVersion.name) != null) { canSave = false; buildVersion.name = BBGoGUI.ErrorTextField(Localization.GetString("build_tab_build_name"), buildVersion.name)?.Trim(); } else { buildVersion.name = EditorGUILayout.TextField(Localization.GetString("build_tab_build_name"), buildVersion.name)?.Trim(); } buildVersion.description = EditorGUILayout.TextField(Localization.GetString("build_tab_build_desc"), buildVersion.description); buildVersion.buildTarget = (BuildTarget)EditorGUILayout.EnumPopup(Localization.GetString("build_tab_build_target"), buildVersion.buildTarget); EditorGUILayout.LabelField(Localization.GetString("build_tab_build_version"), buildVersion.version.ToString()); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.Space(); BBGoGUI.BeginEnable(canSave); { save = GUILayout.Button(m_contentSave, BBGoGUI.styleCompactButton, m_contentOptions); } BBGoGUI.EndEnable(); discard = GUILayout.Button(m_contentDiscard, BBGoGUI.styleCompactButton, m_contentOptions); } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.LabelField(Localization.GetString("build_tab_build_name"), buildVersion.name); EditorGUILayout.LabelField(Localization.GetString("build_tab_build_desc"), buildVersion.description); EditorGUILayout.LabelField(Localization.GetString("build_tab_build_target"), buildVersion.buildTarget.ToString()); EditorGUILayout.LabelField(Localization.GetString("build_tab_build_version"), buildVersion.version.ToString()); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.Space(); BBGoGUI.BeginEnable(!m_hasEdit); { edit = GUILayout.Button(m_contentEdit, BBGoGUI.styleCompactButton, m_contentOptions); delete = GUILayout.Button(m_contentDelete, BBGoGUI.styleCompactButton, m_contentOptions); } BBGoGUI.EndEnable(); } EditorGUILayout.EndHorizontal(); } } } EditorGUILayout.EndVertical(); if (browse) { EditorUtility.RevealInFinder(string.Format($"{FinalPatchConst.ROOT_PATH}/{buildVersion.name}")); } if (copy) { CopyToStreamingAssets(buildVersion); } if (build) { Build(buildVersion, buildVersion.version + 1); } if (save) { buildVersion.isEdit = false; m_managerWindow.FinalPatchEditorData.Save(); GUI.FocusControl(null); } if (discard) { Resources.UnloadAsset(m_managerWindow.FinalPatchEditorData); m_managerWindow.FinalPatchEditorData = FinalPatchEditorData.Load(); GUI.FocusControl(null); } if (edit) { buildVersion.isEdit = true; } if (delete) { bool comfirmDelete = EditorUtility.DisplayDialog(Localization.GetString("build_tab_delete_comfirm_title"), Localization.GetString("build_tab_delete_comfirm_message"), Localization.GetString("build_tab_delete_comfirm_yes"), Localization.GetString("build_tab_delete_comfirm_no")); if (comfirmDelete) { string dir = string.Format($"{FinalPatchConst.ROOT_PATH}/{buildVersion.name}"); if (Directory.Exists(dir)) { Directory.Delete(dir, true); } m_managerWindow.FinalPatchEditorData.builds.Remove(buildVersion); m_managerWindow.FinalPatchEditorData.Save(); } } }