1
+ using System . Collections . Generic ;
2
+ using System . Linq ;
1
3
using HybridCLR . Editor . Settings ;
2
4
using UnityEditor ;
5
+ using UnityEngine ;
3
6
4
7
namespace TEngine . Editor
5
8
{
6
9
[ CustomEditor ( typeof ( UpdateSetting ) , true ) ]
7
10
public class UpdateSettingEditor : UnityEditor . Editor
8
11
{
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
+
9
26
public override void OnInspectorGUI ( )
10
27
{
11
28
// 记录对象修改前的状态
@@ -18,13 +35,23 @@ public override void OnInspectorGUI()
18
35
if ( EditorGUI . EndChangeCheck ( ) )
19
36
{
20
37
// 获取当前编辑的 ScriptableObject 实例
21
- UpdateSetting so = ( UpdateSetting ) target ;
38
+ UpdateSetting updateSetting = ( UpdateSetting ) target ;
22
39
23
40
// 标记对象为“已修改”,确保修改能被保存
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
+ }
28
55
}
29
56
}
30
57
}
0 commit comments