static void Init() { PackageJsonEditor window = (PackageJsonEditor)EditorWindow.GetWindow(typeof(PackageJsonEditor)); window.titleContent = new GUIContent("Package.json"); window.Show(); }
/// <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); }
/// <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); }
/// <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); }
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);; } }