private void SetupAddMenu() { AddMenu.menu.AppendAction("Add package from disk...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "package.json file", "json" }); if (!string.IsNullOrEmpty(path) && !Package.PackageOperationInProgress) { Package.AddFromLocalDisk(path); } }, a => DropdownMenuAction.Status.Normal); AddMenu.menu.AppendAction("Add package from git URL...", a => { var addFromGitUrl = new PackagesAction("Add"); addFromGitUrl.actionClicked += url => { addFromGitUrl.Hide(); if (!Package.PackageOperationInProgress) { Package.AddFromUrl(url); } }; parent.Add(addFromGitUrl); addFromGitUrl.Show(); }, a => DropdownMenuAction.Status.Normal); AddMenu.menu.AppendSeparator(""); AddMenu.menu.AppendAction("Create Package...", a => { var defaultName = PackageCreator.GenerateUniquePackageDisplayName("New Package"); var createPackage = new PackagesAction("Create", defaultName); createPackage.actionClicked += displayName => { createPackage.Hide(); var packagePath = PackageCreator.CreatePackage("Packages/" + displayName); AssetDatabase.Refresh(); EditorApplication.delayCall += () => { var path = Path.Combine(packagePath, "package.json"); var o = AssetDatabase.LoadMainAssetAtPath(path); if (o != null) { UnityEditor.Selection.activeObject = o; } PackageManagerWindow.SelectPackageAndFilter(displayName, PackageFilter.InDevelopment, true); }; }; parent.Add(createPackage); createPackage.Show(); }, a => DropdownMenuAction.Status.Normal); }
private void SetupAddMenu() { addMenu.menu.AppendAction("Add package from disk...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "package.json file", "json" }); if (Path.GetFileName(path) != "package.json") { Debug.Log("Please select a valid package.json file in a package folder."); return; } if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(Path.GetDirectoryName(path)); PackageManagerWindowAnalytics.SendEvent("addFromDisk"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from tarball...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "Package tarball", "tgz" }); if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(path); PackageManagerWindowAnalytics.SendEvent("addFromTarball"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from git URL...", a => { var addFromGitUrl = new PackagesAction("Add"); addFromGitUrl.actionClicked += url => { addFromGitUrl.Hide(); if (!PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromUrl(url); PackageManagerWindowAnalytics.SendEvent("addFromGitUrl"); } }; parent.Add(addFromGitUrl); addFromGitUrl.Show(); }, a => DropdownMenuAction.Status.Normal); PackageManagerExtensions.ExtensionCallback(() => { foreach (var extension in PackageManagerExtensions.MenuExtensions) { extension.OnAddMenuCreate(addMenu.menu); } }); }
private void SetupAddMenu() { addMenu.menu.AppendAction("Add package from disk...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "package.json file", "json" }); if (Path.GetFileName(path) != "package.json") { Debug.Log("Please select a valid package.json file in a package folder."); return; } if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(Path.GetDirectoryName(path)); PackageManagerWindowAnalytics.SendEvent("addFromDisk"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from tarball...", a => { var path = EditorUtility.OpenFilePanelWithFilters("Select package on disk", "", new[] { "Package tarball", "tgz" }); if (!string.IsNullOrEmpty(path) && !PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromPath(path); PackageManagerWindowAnalytics.SendEvent("addFromTarball"); } }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendAction("Add package from git URL...", a => { var addFromGitUrl = new PackagesAction("Add"); addFromGitUrl.actionClicked += url => { addFromGitUrl.Hide(); if (!PackageDatabase.instance.isInstallOrUninstallInProgress) { PackageDatabase.instance.InstallFromUrl(url); PackageManagerWindowAnalytics.SendEvent("addFromGitUrl"); } }; parent.Add(addFromGitUrl); addFromGitUrl.Show(); }, a => DropdownMenuAction.Status.Normal); addMenu.menu.AppendSeparator(""); addMenu.menu.AppendAction("Create Package...", a => { var defaultName = PackageCreator.GenerateUniquePackageDisplayName("New Package"); var createPackage = new PackagesAction("Create", defaultName); createPackage.actionClicked += displayName => { createPackage.Hide(); var packagePath = PackageCreator.CreatePackage("Packages/" + displayName); PackageManagerWindowAnalytics.SendEvent("createPackage"); AssetDatabase.Refresh(); EditorApplication.delayCall += () => { var path = Path.Combine(packagePath, "package.json"); var o = AssetDatabase.LoadMainAssetAtPath(path); if (o != null) { UnityEditor.Selection.activeObject = o; } PackageManagerWindow.SelectPackageAndFilter(displayName, PackageFilterTab.InDevelopment, true); }; }; parent.Add(createPackage); createPackage.Show(); }, a => DropdownMenuAction.Status.Normal); PackageManagerExtensions.ExtensionCallback(() => { foreach (var extension in PackageManagerExtensions.MenuExtensions) { extension.OnAddMenuCreate(addMenu.menu); } }); }