Example #1
0
        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);
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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");
            }
        }