private static void ImportModuleContent(AssetModule assetModule, AssetDatabase.ImportPackageCallback onSuccess) { string packageFilename = string.Format(ASSET_PACK_FILENAME, assetModule.module.moduleID); string relativePackagePath = Path.Combine(ASSET_MODULES_PATH, assetModule.module.moduleID); relativePackagePath = Path.Combine(relativePackagePath, packageFilename); string absolutePackagePath = Path.Combine(ModuleManager.GetProjectPath(), relativePackagePath); if (File.Exists(absolutePackagePath)) { AssetDatabase.importPackageCompleted += onSuccess; AssetDatabase.ImportPackage(relativePackagePath, true); } }
public static void Install(string packagePath, string integration) { AssetDatabase.ImportPackageCallback callback = null; callback = delegate(string packageName) { EditorUtility.DisplayDialog( integration + " Installed", integration + " Integration Successfully Installed", "Done"); AssetDatabase.importPackageCompleted -= callback; }; AssetDatabase.importPackageCompleted += callback; AssetDatabase.ImportPackage(packagePath, false); AssetDatabase.Refresh(); }
/// <summary> /// Installs the integration. /// </summary> /// <param name="integration"></param> /// <param name="showAlerts"></param> /// <returns>True when integration successfully installed</returns> public static bool InstallIntegration(IntegrationInfo integration, bool showAlerts) { if (!IsAllDependenciesInstalled(integration)) { string dependenciesText = ""; for (int i = 0; i < integration.Dependencies.Length; i++) { string dependency = integration.Dependencies[i]; dependenciesText += "- " + GetIntegration(dependency).Title + "\n"; } bool install = EditorUtility.DisplayDialog( "Installing Integration", string.Format("The {0} integration dependencies is not fully installed, do you want to install all dependencies and continue?\n\nDependencies:\n{1}", integration.Title, dependenciesText), "Yes", "No"); if (install) { InstallIntegrationDependencies(integration); } else { return(false); } } string packagePath = string.Format("{0}/{1}/{2}.unitypackage", SaveGameConstants.IntegrationFolder, integration.Identifier, integration.PackageName); AssetDatabase.ImportPackageCallback callback = null; callback = (string packageName) => { if (showAlerts) { EditorUtility.DisplayDialog("Integration Installed", string.Format("{0} Successfully Installed", integration.Title), "Done"); } AssetDatabase.importPackageCompleted -= callback; //AssetDatabase.Refresh(); }; AssetDatabase.importPackageCompleted += callback; AssetDatabase.ImportPackage(packagePath, false); integration.Installed = true; return(true); }