Unity 引擎开发团队宣布,他们已开始将 Unity 引擎运行时从 Mono 迁移到 .NET CoreCLR。此外,他们还会提供融合 JIT 和 AOT 的解决方案 —— 即集成 IL2CPP 和 Burst,从而实现编译时间效率和代码生成质量之间的最佳平衡。
目前,Unity 迁移到 .NET CoreCLR 运行时所涉及的工作已经开始。团队表示这是一个非常具有挑战性的旅程,为了能够成功完成迁移,他们会逐步解决这个问题,并确保能够以保持现有 Unity 项目稳定性的方式渐进发布更新。
因此,开发团队会分多个阶段完成此次迁移:
首先,为桌面平台的独立 player 提供对 .NET CoreCLR 的支持。基于此,开发者可以在 player 设置中选择此运行时以及现有的 Mono 和 IL2CPP 后端。
团队认为,此阶段可以帮助他们迁移 Unity 引擎的核心部分(比编辑器部分小得多),并有望解决此迁移所涉及的大部分技术挑战。开发者在这个阶段仍将通过 .NET Standard 2.1 API 访问 .NET 运行时,他们的目标是在 2023 年发布新的运行时。
然后在第二阶段,团队会把 Unity 编辑器移植到 .NET CoreCLR,同时取消对 .NET Mono 运行时的支持。第二阶段的挑战是,如何在不使用 AppDomain 的情况下在编辑器中重新加载脚本,并完成向 .NET CoreCLR 的切换。它还将涉及升级 IL2CPP 以支持来自 dotnet/runtime 仓库的基类库。开发者最终可以访问完整的 .NET 7.x 或 8.0 API。Unity 团队计划在 2024 年发布新编辑器。
对外,Unity 正在与 Microsoft 和 JetBrains 等行业合作伙伴合作,加大对开源社区的参与力度,以确保 Unity 创作者能使用最新的 .NET 技术。
本文转自OSCHINA
本文标题:Unity 引擎开始从 Mono 迁移到 .NET CoreCLR
本文地址:https://www.oschina.net/news/197082/unity-and-net-whats-next