| Assets/Launch/AOTRefSort.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Assets/Launch/AOTRefSort.cs
@@ -22,10 +22,18 @@ // 阻止 IL2CPP 把排序调用当作无副作用而优化掉 private static volatile int s_sink; // 运行时恒为 false(非 const,IL2CPP/裁剪器无法在编译期折叠), // 保证下面的排序调用被编进 AOT,但运行时绝不真正执行(避免 object 无 IComparable 抛异常)。 private static bool s_run; // 由 Launch.StartGame 调用,防止 IL2CPP 裁剪 [Preserve] public static void Ensure() { // 只为让 IL2CPP 把 EnsureSortable 的各实例化编进 AOT,不实际执行 if (!s_run) return; // 引用类型:object 版本覆盖所有 class(含自定义类、string 等) EnsureSortable<object>(new object(), new object());