| Assets/Launch/AOTRefSort.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Assets/Launch/AOTRefSort.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Assets/Launch/Launch.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Assets/Launch/AOTRefSort.cs
New file @@ -0,0 +1,19 @@ using System; using System.Collections.Generic; /// <summary> /// 为 List<T>.Sort(lambda) / Sort() 提供 AOT 泛型实例化兜底。 /// 按 HybridCLR 泛型共享规则,class 引用类型只需实例化 object 版本。 /// 若 HeroDebutGiftItem 之类是值类型,需额外添加精确版本。 /// </summary> public static class AOTRefSort { // 由 Launch.StartGame 调用,防止 IL2CPP 裁剪 public static void Ensure() { // Sort(lambda) → 需要 Comparison<T> _ = new Comparison<object>((a, b) => 0); // Sort() 无参 → 需要 Comparer<T>.Default _ = Comparer<object>.Default; } } Assets/Launch/AOTRefSort.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: f80df828080a7d041a94656a7312f67f MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Assets/Launch/Launch.cs
@@ -508,6 +508,7 @@ private void StartGame() { TraceBegin("StartGame", "进入热更主流程"); AOTRefSort.Ensure(); #if !UNITY_EDITOR LoadMetadataForAOTAssemblies(); _hotUpdateAss = Assembly.Load(ReadBytesFromStreamingAssets("Main.dll.bytes"));