无法将非默认字体导入monogame

时间:2015-08-04 12:07:35

标签: c# fonts xna monogame

我已经尝试了一段时间来导入字体,(进入Monogame)这不是默认的,它只是不会工作。我用Google搜索了很多次,但我找到的答案都没有解决。所以你们中的任何人都可能知道我做错了什么?

2 个答案:

答案 0 :(得分:4)

我在3.7.1.189中遇到了相同的问题,并通过右键单击字体.otf文件并选择“为所有用户安装”来解决此问题。您可能会收到UAC提示,单击“允许”或“是”。这个为我修复了MonoGame的管道工具,因此我可以使用自定义字体。

答案 1 :(得分:1)

很难在互联网上找到相关信息,因为通过添加Monogame管道工具(http://www.monogame.net/documentation/?page=Pipeline)改变了流程。本文档适用于Monogame 3.4。

如何添加字体并在MonoGame 3.4中使用它:

  1. 抓取您要使用的字体(查看许可证以确保您可以使用它。)

  2. 将字体安装到您的操作系统中。

  3. 打开“字体”控制面板以验证字体的正确名称。 提示:这不是文件名,也不一定是字体控制面板主页中字体的名称。

    一个。右键单击字体&转到属性

    湾请注意字体的“标题”:Font Title

    在屏幕截图中,字体为“Plasmatica”,但Font的控制面板显示为“Plasmatica Regular”。对于其余部分,我将使用Plasmatica Italic,这两个地方恰好相同。

  4. 在MonoGame管道工具中,创建一个“.spritefont”文件:Add New Item

    一个。选择“SpriteFont描述”并为其命名。 我建议使用类似“FontName_FontStyle_FontSize”的内容,例如:PlasmaticaItalic12。

  5. 在文本编辑器中打开新的SpriteFont文件(在MonoGame管道中双击它)。将XML节点更改为字体控制面板中字体属性的相同名称。 SpriteFont XML

  6. Save&构建您的MonoGame管道项目。如果到目前为止事情是正确的,你应该在输出中看到这个:

      

    c:/ [内容目录的路径] /Content/GUI/Fonts/PlasmaticaItalic12.spritefont

         

    构建字体C:\ WINDOWS \ Fonts \ PlasmaNormalItalic.ttf

         

    使用DXT压缩

  7. 现在您的代码可以加载&使用这个字体:

      

    SpriteFont font = Content.Load(“Gui / Fonts / PlasmaticaItalic12”);

         

    spriteBatch.DrawString(font,“Hello World!”,Vector2(0,0),Color.White);

         

    //其中Content是Game类的Content变量(type:ContentManager) - 您的main的子类   游戏类 - 所有示例中的game1.cs。 spriteBatch就是SpriteBatch。

  8. P.S。如果遇到问题,请检查以确保管道工具的输出包含在项目中。我叫做“Content.mgcb”。自从我开始使用Monogame的样本后,我就被收录了。您可能应该“在适当的位置”使用Visual Studio - 意味着不要“添加现有文件”,因为它会复制。您需要实际链接或包含文件的目录结构。修复文件的属性(在VS中)以将构建操作设置为“MonoGameContentReference”。 “复制到输出目录”设置为“不复制”

    祝你好运!到目前为止,我很享受Monogame,但是正确设置所有部件有点复杂。