static void Init()
    {
        PackageJsonEditor window = (PackageJsonEditor)EditorWindow.GetWindow(typeof(PackageJsonEditor));

        window.titleContent = new GUIContent("Package.json");
        window.Show();
    }
コード例 #2
0
        /// <summary>
        /// 设置版本号
        /// </summary>
        private void SetPackageJsonVersion(string version)
        {
            string pattern = "(^[0-9]+\\.[0-9]+\\.[0-9]+$)";
            var    rst     = RegexUtils.RegexMatch(version, pattern);

            if (rst == false)
            {
                ShowVersionCheckResult($"版本检测失败:{version}", Color.red);
                return;
            }

            // 保存版本号
            PackageJsonEditor.SavePackageJsonVersionChange(version);

            _version = new Version(version);
        }
コード例 #3
0
        /// <summary>
        /// 初始化创建界面UI
        /// </summary>
        public void InitUIElementCreate(PackageJsonInfo packageJsonInfo, string path)
        {
            var root = this;

            // 预览
            var preview = root.Q <TextField>("preview_tf");

            preview.value = PackageJson.ToJson(packageJsonInfo);

            // 创建按钮响应点击
            var button = root.Q <Button>("create_btn");

            button.clicked += () =>
            {
                // 创建插件包的动作
                PackageJsonEditor.CreatePackageAction(packageJsonInfo);
                // 添加"UPMTool"依赖
//                PackageJsonEditor.AddUPMToolDependency(packageJsonInfo);
                // 创建或修改package.json
                var rst = PackageJsonEditor.SavePackageJsonChange(packageJsonInfo, path, out var msg);
                DrawSavePackageJsonInfoRet(rst, msg);

                // 保存失败直接结束
                if (rst == false)
                {
                    return;
                }

                preview.value = PackageJson.ToJson(packageJsonInfo);
                // 刷新,显示插件包框架
                AssetDatabase.Refresh();

                // 创建PackagePath.cs,需要检查插件包路径才能创建
                PackageJsonEditor.AfterCreatePackageAction();
                // 刷新,显示PackagePath.cs
                AssetDatabase.Refresh();
            };

            // 编辑按钮隐藏
            var element = root.Q <VisualElement>("edit_box");

            element.parent.Remove(element);

            // 初始化依赖操作(Create界面不需要依赖操作,所以要隐藏)
            InitDependenciesUIElement(root, packageJsonInfo, "dependencies", false);
            InitDependenciesUIElement(root, packageJsonInfo, "dependenciesUt", false);
        }
コード例 #4
0
        /// <summary>
        /// 初始化编辑界面UI
        /// </summary>
        public void InitUIElementEditor(PackageJsonInfo packageJsonInfo, string path)
        {
            var root = this;

            // 预览
            var preview = root.Q <TextField>("preview_tf");

            preview.value = PackageJson.ToJson(packageJsonInfo);

            // TODO 编辑按钮-撤销修改响应点击
            var button = root.Q <Button>("revert_btn");

            button.clicked += () => { Debug.Log("抱歉!撤销功能还没做..."); };

            // 编辑按钮-应用修改响应点击
            button          = root.Q <Button>("apply_btn");
            button.clicked += () =>
            {
                var rst = PackageJsonEditor.SavePackageJsonChange(packageJsonInfo, path, out var msg);
                DrawSavePackageJsonInfoRet(rst, msg);

                // 保存失败直接结束
                if (rst == false)
                {
                    return;
                }

                preview.value = PackageJson.ToJson(packageJsonInfo);
                AssetDatabase.Refresh();
            };

            // 创建按钮隐藏
            var element = root.Q <VisualElement>("create_box");

            element.parent.Remove(element);

            // 初始化依赖操作
            InitDependenciesUIElement(root, packageJsonInfo, "dependencies", true);
            InitDependenciesUIElement(root, packageJsonInfo, "dependenciesUt", true);
        }
コード例 #5
0
    void OnGUI()
    {
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Back-up:", EditorStyles.boldLabel);
        if (GUILayout.Button("Save"))
        {
            WindowPlayerPref.Save("PackageBasicBuilderBackup", JsonUtility.ToJson(m_info));
        }
        if (WindowPlayerPref.Has("PackageBasicBuilderBackup") && GUILayout.Button("Load"))
        {
            try
            {
                string json = WindowPlayerPref.Load("PackageBasicBuilderBackup");
                Info   i    = JsonUtility.FromJson <Info>(json);
                if (i != null)
                {
                    m_info = i;
                }
            }
            catch (Exception) { }
        }

        EditorGUILayout.EndHorizontal();

        m_info.m_selector    = null;
        m_info.m_targetedGit = null;
        UnityPathSelectionInfo.Get(out m_info.m_selectorpathFound, out m_info.m_selector);
        AccessGitWithPathSelector.GetAffectedGit(m_info.m_selector, out m_info.m_targetedGit);

        if (m_info.m_targetedGit != null)
        {
            string p = m_info.m_targetedGit.GetRelativeDirectoryPath();
            m_info.m_selector = new UnityPathSelectionInfo(p);
        }

        EditorGUILayout.HelpBox("Reminder: Git must be install and Git.exe must be add in System Variable Path.", MessageType.Warning, true);
        m_info.m_packageTargeted = PackageJsonUtility.GetPackageFile(m_info.m_selector);



        if (GUILayout.Button("Select: " + m_info.m_selector.GetSelectName(false)))
        {
            m_info.m_selector.Open();
        }
        if (m_info.m_targetedGit == null)
        {
            string path = m_info.m_selector.GetAbsolutePath(true);

            if (GUILayout.Button("Git Init. in " + m_info.m_selector.GetSelectName(true)))
            {
                QuickGit.CreateLocal(path);
            }
            GitForFacilitationEditor.ProposeCloneProject(m_info.m_selector, ref m_info.m_tmpCloneProposed);
            GitForFacilitationEditor.ProposeToCreateFolder(m_info.m_selector, ref m_info.m_tmpFolderToCreate);
        }
        else
        {
            if (!m_info.m_targetedGit.IsHosted())
            {
                GitForFacilitationEditor.PushLocalGitToOnlineAccount(m_info.m_targetedGit,
                                                                     ref m_info.m_userNameToCreateGit,
                                                                     ref m_info.m_projectNameToCreate,
                                                                     ref m_info.m_dropDownSelectionServer,
                                                                     ref m_info.m_hideGitUtilitary);
            }
            GUILayout.Space(20);
            if (GUILayout.Button("Git: " + m_info.m_selector.GetSelectName(true), EditorStyles.boldLabel))
            {
                Application.OpenURL(m_info.m_selector.GetAbsolutePath(false));
            }
            if (QuickGit.IsPathHasGitRootFolder(m_info.m_selector.GetAbsolutePath(true)))
            {
                GitEditorDrawer.DisplayGitCommands(m_info.m_targetedGit);
                UnityPackageEditorDrawer.DrawPackageDownUpButton(m_info.m_targetedGit, true);
            }
            PackageJsonEditor.DrawEditorDefaultInterface(m_info.m_selector, m_info.m_packageTargeted, ref m_info.m_packageBuilder, ref m_info.m_tmpPackageJsonProposition, ref m_info.m_tmp_rawDisplayJsonPackage, ref m_info.m_hidePackageBuilder);;
        }
    }