diff --git a/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs b/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs new file mode 100644 index 00000000..80879357 --- /dev/null +++ b/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs @@ -0,0 +1,31 @@ +using HybridCLR.Editor.Settings; +using UnityEditor; + +namespace TEngine.Editor +{ + [CustomEditor(typeof(UpdateSetting), true)] + public class UpdateSettingEditor : UnityEditor.Editor + { + public override void OnInspectorGUI() + { + // 记录对象修改前的状态 + EditorGUI.BeginChangeCheck(); + + // 绘制默认的 Inspector 界面 + base.OnInspectorGUI(); + + // 检测是否有字段被修改 + if (EditorGUI.EndChangeCheck()) + { + // 获取当前编辑的 ScriptableObject 实例 + UpdateSetting so = (UpdateSetting)target; + + // 标记对象为“已修改”,确保修改能被保存 + EditorUtility.SetDirty(so); + + HybridCLRSettings.Instance.hotUpdateAssemblies = so.HotUpdateAssemblies.ToArray(); + HybridCLRSettings.Instance.patchAOTAssemblies = so.AOTMetaAssemblies.ToArray(); + } + } + } +} \ No newline at end of file diff --git a/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs.meta b/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs.meta new file mode 100644 index 00000000..d6958ba7 --- /dev/null +++ b/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d7ca490137b34f09b27a5564d3d246d9 +timeCreated: 1742208162 \ No newline at end of file diff --git a/UnityProject/Assets/TEngine/Settings/UpdateSetting.asset b/UnityProject/Assets/TEngine/Settings/UpdateSetting.asset index 1bdf9095..e551ee91 100644 --- a/UnityProject/Assets/TEngine/Settings/UpdateSetting.asset +++ b/UnityProject/Assets/TEngine/Settings/UpdateSetting.asset @@ -14,7 +14,6 @@ MonoBehaviour: m_EditorClassIdentifier: projectName: Demo HotUpdateAssemblies: - - GameBase.dll - GameProto.dll - GameLogic.dll AOTMetaAssemblies: @@ -25,5 +24,7 @@ MonoBehaviour: LogicMainDllName: GameLogic.dll AssemblyTextAssetExtension: .bytes AssemblyTextAssetPath: AssetRaw/DLL + UpdateStyle: 2 + UpdateNotice: 1 ResDownLoadPath: http://127.0.0.1:8081 FallbackResDownLoadPath: http://127.0.0.1:8082 diff --git a/UnityProject/ProjectSettings/HybridCLRSettings.asset b/UnityProject/ProjectSettings/HybridCLRSettings.asset index 44bf02c7..4faac8ec 100644 --- a/UnityProject/ProjectSettings/HybridCLRSettings.asset +++ b/UnityProject/ProjectSettings/HybridCLRSettings.asset @@ -17,12 +17,18 @@ MonoBehaviour: hybridclrRepoURL: https://gitee.com/focus-creative-games/hybridclr il2cppPlusRepoURL: https://gitee.com/focus-creative-games/il2cpp_plus hotUpdateAssemblyDefinitions: [] - hotUpdateAssemblies: [] + hotUpdateAssemblies: + - GameProto.dll + - GameLogic.dll preserveHotUpdateAssemblies: [] hotUpdateDllCompileOutputRootDir: HybridCLRData/HotUpdateDlls externalHotUpdateAssembliyDirs: [] strippedAOTDllOutputRootDir: HybridCLRData/AssembliesPostIl2CppStrip - patchAOTAssemblies: [] + patchAOTAssemblies: + - mscorlib.dll + - System.dll + - System.Core.dll + - TEngine.Runtime.dll outputLinkFile: HybridCLRGenerate/link.xml outputAOTGenericReferenceFile: HybridCLRGenerate/AOTGenericReferences.cs maxGenericReferenceIteration: 10