我有一个用 C# 编写的适用于 .NET 6 的现有应用程序,它使用轻量级 OpenTK (v4) OpenGL 绑定来渲染 OpenGL,该绑定支持 .NET 5+、Open GL 3+ 和 OpenGL ES 2+。
根据OpenTK常见问题解答:
OpenTK 可在 Windows、Linux 和 MacOS X 上运行。
(旧版本的 OpenTK 也支持 Android 和 iOS;当前的 OpenTK 可能适用于这些,但未经测试。)
我对 .NET 6 的统一平台承诺感到兴奋,但我只见过使用 Microsoft 新的 .NET 多平台应用程序 UI (.NET MAUI) 框架的跨平台移动项目。 MAUI 似乎是一个包含 Blazor Web 应用程序的 Web 视图 shell。我在存储库的 src/Core/AndroidNative 文件夹中找到了该 shell 的代码,但对于我的目的而言,它似乎非常臃肿。我希望能够访问 Android 特定的功能,而无需 Blazor 和 Web 视图的臃肿。根据这篇博文,Xamarin.Android 可能是答案,但我不确定如何将其引入到我现有的项目中。
我所需要的只是一个简单的外壳:
我更喜欢使用 C# 编写 shell,因为引入 Java 代码会使我的构建过程变得复杂,并使我的代码库变得支离破碎。
我对 .NET 的承诺不再那么兴奋了,因为他们似乎将来不想再在 .NET Maui 中支持 OpenGL :(
正如您提到的,您可以使用 Xamarin 来实现此目的。我最近写了一篇关于如何使用 Xamarin 设置 OpenGL 特别是 Android 的文章:https://ben-5.azurewebsites.net/2023/10/11/lets-create-a-mobile-game-with-xamarin-and -opengl-第 1 部分 它解释了如何将特定于平台的代码与 OpenGL 代码分开。在下一部分中我还将描述如何使用着色器。