private static void CreateExporter(ExportPackageOptions exportPackageOptions, string path) { LogUtility.LogInfo("Creating Exporter"); ModToolSettings modToolSettings = ModToolSettings.instance; CodeSettings codeSettings = CodeSettings.instance; string modToolDirectory = AssetUtility.GetModToolDirectory(); string exporterPath = Path.Combine(modToolDirectory, Path.Combine("Editor", "ModTool.Exporting.Editor.dll")); string fileName = Path.Combine(path, Application.productName + " Mod Tools.unitypackage"); List <string> assetPaths = new List <string> { AssetDatabase.GetAssetPath(modToolSettings), AssetDatabase.GetAssetPath(codeSettings), Path.Combine(modToolDirectory, Path.Combine("Editor", "ModTool.Exporting.Editor.dll")), Path.Combine(modToolDirectory, Path.Combine("Editor", "ModTool.Shared.Editor.dll")), Path.Combine(modToolDirectory, "ModTool.Shared.dll"), Path.Combine(modToolDirectory, "ModTool.Shared.xml"), Path.Combine(modToolDirectory, "ModTool.Interface.dll"), Path.Combine(modToolDirectory, "ModTool.Interface.xml"), Path.Combine(modToolDirectory, Path.Combine("Mono.Cecil", "Mono.Cecil.dll")), Path.Combine(modToolDirectory, Path.Combine("Mono.Cecil", "LICENSE.txt")) }; List <string> assemblyPaths = GetApiAssemblyPaths(CodeSettings.apiAssemblies); AssetUtility.MoveAssets(assemblyPaths, modToolDirectory); assetPaths.AddRange(assemblyPaths); SetPluginEnabled(exporterPath, true); AssetDatabase.ExportPackage(assetPaths.ToArray(), fileName, exportPackageOptions | ExportPackageOptions.IncludeLibraryAssets); }
void OnEnable() { modToolSettings = ModToolSettings.instance; codeSettings = CodeSettings.instance; modToolSettingsEditor = UnityEditor.Editor.CreateEditor(modToolSettings); codeSettingsEditor = UnityEditor.Editor.CreateEditor(codeSettings); }
private static void CreateExporter(string path, bool revealPackage = false) { LogUtility.LogInfo("Creating Exporter"); UpdateSettings(); ModToolSettings modToolSettings = ModToolSettings.instance; CodeSettings codeSettings = CodeSettings.instance; string modToolDirectory = AssetUtility.GetModToolDirectory(); string exporterPath = Path.Combine(modToolDirectory, Path.Combine("Editor", "ModTool.Exporting.Editor.dll")); string fileName = Path.Combine(path, Application.productName + " Mod Tools.unitypackage"); string projectSettingsDirectory = "ProjectSettings"; List <string> assetPaths = new List <string> { AssetDatabase.GetAssetPath(modToolSettings), AssetDatabase.GetAssetPath(codeSettings), Path.Combine(modToolDirectory, Path.Combine("Editor", "ModTool.Exporting.Editor.dll")), Path.Combine(modToolDirectory, Path.Combine("Editor", "ModTool.Shared.Editor.dll")), Path.Combine(modToolDirectory, "ModTool.Shared.dll"), Path.Combine(modToolDirectory, "ModTool.Shared.xml"), Path.Combine(modToolDirectory, "ModTool.Interface.dll"), Path.Combine(modToolDirectory, "ModTool.Interface.xml"), Path.Combine(modToolDirectory, Path.Combine("Mono.Cecil", "Mono.Cecil.dll")), Path.Combine(modToolDirectory, Path.Combine("Mono.Cecil", "LICENSE.txt")), Path.Combine(projectSettingsDirectory, "InputManager.asset"), Path.Combine(projectSettingsDirectory, "TagManager.asset"), Path.Combine(projectSettingsDirectory, "Physics2DSettings.asset"), Path.Combine(projectSettingsDirectory, "DynamicsManager.asset") }; SetPluginEnabled(exporterPath, true); List <string> assemblyPaths = new List <string>(); GetApiAssemblies("Assets", assemblyPaths); GetApiAssemblies("Library", assemblyPaths); assetPaths.AddRange(assemblyPaths); AssetDatabase.ExportPackage(assetPaths.ToArray(), fileName); foreach (string assemblyPath in assemblyPaths) { AssetDatabase.DeleteAsset(assemblyPath); } SetPluginEnabled(exporterPath, false); if (revealPackage) { EditorUtility.RevealInFinder(fileName); } }
private void VerifyProject() { if (!ModToolSettings.VerifyVersion()) { throw new Exception("Mods for " + ModToolSettings.productName + " can only be exported with Unity " + ModToolSettings.unityVersion); } if (Application.isPlaying) { throw new Exception("Unable to export mod in play mode"); } if (!VerifyAssemblies()) { throw new Exception("Incompatible scripts or assemblies found"); } }