diff --git a/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector.meta b/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector.meta new file mode 100644 index 00000000..a3eda735 --- /dev/null +++ b/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5441af6e690e22643970bc4bafba0eb9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector/HybirdCLRInjector.cs b/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector/HybirdCLRInjector.cs new file mode 100644 index 00000000..62feda42 --- /dev/null +++ b/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector/HybirdCLRInjector.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using HybridCLR.Editor; +using TEngine.Runtime; +using UnityEditor; +using UnityEngine; + +namespace TEngine.Editor +{ + /// + /// HybirdCLR 热更新 打包插入管线 + /// + public static class HybirdCLRInjectorEditor + { + [TEngineBuilderInjector(BuilderInjectorMoment.BeforeCollect_AssetBundle)] + public static void BeforeCollectAssetBundle() + { + CompileDllHelper.CompileDllActiveBuildTarget(); + Log.Warning("CompileDllHelper.CompileDllActiveBuildTarget()"); + + var target = EditorUserBuildSettings.activeBuildTarget; + var dllDir = Constant.Setting.AssetRootPath+"/Dll"; + + string hotfixDllSrcDir = BuildConfig.GetHotFixDllsOutputDirByTarget(target); + foreach (var dll in BuildConfig.HotUpdateAssemblies) + { + string dllPath = $"{hotfixDllSrcDir}/{dll}"; + string dllBytesPath = $"{dllDir}/{dll}.bytes"; + try + { + File.Copy(dllPath, dllBytesPath, true); + } + catch (Exception e) + { + Log.Fatal(e.Message); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector/HybirdCLRInjector.cs.meta b/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector/HybirdCLRInjector.cs.meta new file mode 100644 index 00000000..2a13e902 --- /dev/null +++ b/Assets/TEngine/Scripts/Editor/AssetBundleBuild/HybirdCLRInjector/HybirdCLRInjector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b0d3fa47cdbec26468b426ee8e23e245 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TEngine/Scripts/Editor/HybridCLR/BuildConfig_Custom.cs b/Assets/TEngine/Scripts/Editor/HybridCLR/BuildConfig_Custom.cs index 16676171..e2c6a7d2 100644 --- a/Assets/TEngine/Scripts/Editor/HybridCLR/BuildConfig_Custom.cs +++ b/Assets/TEngine/Scripts/Editor/HybridCLR/BuildConfig_Custom.cs @@ -1,11 +1,4 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using UnityEditor; -using UnityEngine; +using System.Collections.Generic; namespace HybridCLR.Editor { @@ -17,8 +10,8 @@ namespace HybridCLR.Editor /// public static List HotUpdateAssemblies { get; } = new List { + "TEngine.Runtime.dll", "HotFix.dll", - "HotFix2.dll", }; public static List AOTMetaAssemblies { get; } = new List()