使用 Monogame 设置跨平台项目

Setup project Cross-Platform with Monogame

我一直在努力弄清楚如何为 MonoGame 设置跨平台项目。这样做的常规方法是什么? 这是通过共享项目完成的吗?我可以将所有内容保留在 1 个项目中吗?

另外,我不确定此信息是否正确,我是否需要 Mac 来构建我的 Mac 项目?它如何工作?如果是这样,最好的设置方式是什么。

目标平台:WINDOWS、LINUX、MAC

由于您只针对 Windows、Linux 和 Mac,因此您可以使用在所有三个目标平台上运行的 Xamarin/MonoDevlop

安装完成后,通过插件管理器添加 Monogame。 Xaramin 和 MonoDevlop 第 5 版的插件。

假设您使用 OpenGL 模板,那么您可以在所有三个平台之间使用相同的解决方案项目文件。我使用这种方法在 Windows 和 Linux 之间进行开发。

唯一需要使用共享项目或类似项目的情况是,如果您开始在 DirectX 而不是 OpenGL 上针对移动设备 (iOS/Android) 或 Windows 进行开发。

在我看来,设置跨平台 MonoGame 项目的最佳方式是使用共享项目。共享项目还可以包含 .mgcb 文件,因此您也不需要复制您的内容。怎么做:

  1. 使用 "Xamarin Studio/MonoDevelop" 并使用您的游戏名称创建一个 "MonoGame Shared Project"
    • 如果你要使用using "Visual Studio",关闭"Xamarin Studio/MonoDevelop",然后用它打开创建的项目
    • 您必须将生成的 "Content\Content.mgcb" 文件包含在构建操作 "None" 中,以便它在项目视图区域中可见
  2. 为您希望从中启动游戏的平台添加一个 MonoGame 项目,即。创建一个 "MonoGame Crossplatform Project" 并将其命名为“(gamename).DesktopGL”
  3. 从平台项目中删除 "Game1.cs" 和 "Content Folder"
  4. 为您的共享项目添加引用
  5. 对于您的平台项目,在选项中将输出程序集名称设置为与您的共享项目相同
    • 这一步可能看起来并不重要,但如果您使用的是自定义 importer/processor,这将使您不必为每个平台分别编译内容。

好了,你现在应该可以运行你的项目了。

Also I am not sure if this information is correct do I need a Mac to build my project for Mac how does that work ? If so how what's the best way of setting that up.

从 DesktopGL 项目创建的可执行文件在 Mac 上 运行 可用,即使从 Windows 编译时也是如此,Mac 用户只需使用 Mono 启动它。如果您愿意,您可以使用 MonoKickstart 打包您的游戏,这样您的 Linux 和 Mac 用户就不必安装单声道:https://github.com/MonoGame/MonoKickstart 更重要的是,它还包括其他需要的本机库.关于如何使用它的说明在 link.