Skip to content

Commit 58cecd2

Browse files
committed
Update UpdateSettingEditor.cs
1 parent 81a794c commit 58cecd2

File tree

1 file changed

+32
-5
lines changed

1 file changed

+32
-5
lines changed

UnityProject/Assets/TEngine/Editor/Utility/UpdateSettingEditor.cs

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
1+
using System.Collections.Generic;
2+
using System.Linq;
13
using HybridCLR.Editor.Settings;
24
using UnityEditor;
5+
using UnityEngine;
36

47
namespace TEngine.Editor
58
{
69
[CustomEditor(typeof(UpdateSetting), true)]
710
public class UpdateSettingEditor : UnityEditor.Editor
811
{
12+
public List<string> HotUpdateAssemblies = new() {};
13+
public List<string> AOTMetaAssemblies = new() {};
14+
15+
private void OnEnable()
16+
{
17+
// 获取当前编辑的 ScriptableObject 实例
18+
UpdateSetting updateSetting = (UpdateSetting)target;
19+
if (updateSetting != null)
20+
{
21+
HotUpdateAssemblies.AddRange(updateSetting.HotUpdateAssemblies);
22+
AOTMetaAssemblies.AddRange(updateSetting.AOTMetaAssemblies);
23+
}
24+
}
25+
926
public override void OnInspectorGUI()
1027
{
1128
// 记录对象修改前的状态
@@ -18,13 +35,23 @@ public override void OnInspectorGUI()
1835
if (EditorGUI.EndChangeCheck())
1936
{
2037
// 获取当前编辑的 ScriptableObject 实例
21-
UpdateSetting so = (UpdateSetting)target;
38+
UpdateSetting updateSetting = (UpdateSetting)target;
2239

2340
// 标记对象为“已修改”,确保修改能被保存
24-
EditorUtility.SetDirty(so);
25-
26-
HybridCLRSettings.Instance.hotUpdateAssemblies = so.HotUpdateAssemblies.ToArray();
27-
HybridCLRSettings.Instance.patchAOTAssemblies = so.AOTMetaAssemblies.ToArray();
41+
EditorUtility.SetDirty(updateSetting);
42+
43+
bool isHotChanged = HotUpdateAssemblies.SequenceEqual(updateSetting.HotUpdateAssemblies);
44+
bool isAOTChanged = AOTMetaAssemblies.SequenceEqual(updateSetting.AOTMetaAssemblies);
45+
if (isHotChanged)
46+
{
47+
HybridCLRSettings.Instance.hotUpdateAssemblies = updateSetting.HotUpdateAssemblies.ToArray();
48+
Debug.Log("HotUpdateAssemblies changed");
49+
}
50+
if (isAOTChanged)
51+
{
52+
HybridCLRSettings.Instance.patchAOTAssemblies = updateSetting.AOTMetaAssemblies.ToArray();
53+
Debug.Log("AOTMetaAssemblies changed");
54+
}
2855
}
2956
}
3057
}

0 commit comments

Comments
 (0)