123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using UnityEditor.Build;
- using UnityEditor.Build.Reporting;
- using UnityEngine;
- namespace HybridCLR.Editor.BuildProcessors
- {
- internal class CheckSettings : IPreprocessBuildWithReport
- {
- public int callbackOrder => 0;
- public void OnPreprocessBuild(BuildReport report)
- {
- HybridCLRSettings globalSettings = SettingsUtil.HybridCLRSettings;
- #if !UNITY_2020_1_OR_NEWER || !UNITY_IOS
- if (!globalSettings.enable || globalSettings.useGlobalIl2cpp)
- {
- string oldIl2cppPath = Environment.GetEnvironmentVariable("UNITY_IL2CPP_PATH");
- if (!string.IsNullOrEmpty(oldIl2cppPath))
- {
- Environment.SetEnvironmentVariable("UNITY_IL2CPP_PATH", "");
- Debug.Log($"[CheckSettings] 清除 UNITY_IL2CPP_PATH, 旧值为:'{oldIl2cppPath}'");
- }
- }
- else
- {
- string curIl2cppPath = Environment.GetEnvironmentVariable("UNITY_IL2CPP_PATH");
- if (curIl2cppPath != SettingsUtil.LocalIl2CppDir)
- {
- Environment.SetEnvironmentVariable("UNITY_IL2CPP_PATH", SettingsUtil.LocalIl2CppDir);
- Debug.Log($"[CheckSettings] UNITY_IL2CPP_PATH 当前值为:'{curIl2cppPath}',更新为:'{SettingsUtil.LocalIl2CppDir}'");
- }
- }
- #endif
- if (!globalSettings.enable)
- {
- return;
- }
- if (UnityEditor.PlayerSettings.gcIncremental)
- {
- Debug.LogError($"[CheckSettings] HybridCLR不支持增量式GC,已经自动将该选项关闭");
- UnityEditor.PlayerSettings.gcIncremental = false;
- }
- var installer = new Installer.InstallerController();
- if (!installer.HasInstalledHybridCLR())
- {
- throw new Exception($"你没有初始化HybridCLR,请通过菜单'HybridCLR/Installer'安装");
- }
- HybridCLRSettings gs = SettingsUtil.HybridCLRSettings;
- if (((gs.hotUpdateAssemblies?.Length + gs.hotUpdateAssemblyDefinitions?.Length) ?? 0) == 0)
- {
- Debug.LogWarning("[CheckSettings] HybridCLRSettings中未配置任何热更新模块");
- }
- }
- }
- }
|