From 58cecd207166bf3a97c0df153906647d37ab2f4b Mon Sep 17 00:00:00 2001 From: Alex-Rachel <574809918@qq.com> Date: Tue, 18 Mar 2025 00:36:34 +0800 Subject: [PATCH] Update UpdateSettingEditor.cs --- .../Editor/Utility/UpdateSettingEditor.cs | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs b/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs index 80879357..0dd56c99 100644 --- a/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs +++ b/UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs @@ -1,11 +1,28 @@ +using System.Collections.Generic; +using System.Linq; using HybridCLR.Editor.Settings; using UnityEditor; +using UnityEngine; namespace TEngine.Editor { [CustomEditor(typeof(UpdateSetting), true)] public class UpdateSettingEditor : UnityEditor.Editor { + public List HotUpdateAssemblies = new() {}; + public List AOTMetaAssemblies = new() {}; + + private void OnEnable() + { + // 获取当前编辑的 ScriptableObject 实例 + UpdateSetting updateSetting = (UpdateSetting)target; + if (updateSetting != null) + { + HotUpdateAssemblies.AddRange(updateSetting.HotUpdateAssemblies); + AOTMetaAssemblies.AddRange(updateSetting.AOTMetaAssemblies); + } + } + public override void OnInspectorGUI() { // 记录对象修改前的状态 @@ -18,13 +35,23 @@ namespace TEngine.Editor if (EditorGUI.EndChangeCheck()) { // 获取当前编辑的 ScriptableObject 实例 - UpdateSetting so = (UpdateSetting)target; + UpdateSetting updateSetting = (UpdateSetting)target; // 标记对象为“已修改”,确保修改能被保存 - EditorUtility.SetDirty(so); - - HybridCLRSettings.Instance.hotUpdateAssemblies = so.HotUpdateAssemblies.ToArray(); - HybridCLRSettings.Instance.patchAOTAssemblies = so.AOTMetaAssemblies.ToArray(); + EditorUtility.SetDirty(updateSetting); + + bool isHotChanged = HotUpdateAssemblies.SequenceEqual(updateSetting.HotUpdateAssemblies); + bool isAOTChanged = AOTMetaAssemblies.SequenceEqual(updateSetting.AOTMetaAssemblies); + if (isHotChanged) + { + HybridCLRSettings.Instance.hotUpdateAssemblies = updateSetting.HotUpdateAssemblies.ToArray(); + Debug.Log("HotUpdateAssemblies changed"); + } + if (isAOTChanged) + { + HybridCLRSettings.Instance.patchAOTAssemblies = updateSetting.AOTMetaAssemblies.ToArray(); + Debug.Log("AOTMetaAssemblies changed"); + } } } }