コード例 #1
0
ファイル: FinalPatchEditorData.cs プロジェクト: DrakSong/MML
        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);
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
                }
            }
        }