无法在XNA4中加载spriteFont

cas*_*tis 6 c# xna

我和XNA一起玩耍,我来到了需要加载字体的部分.够简单吧?

Font1 = Content.Load<SpriteFont>("Arial");
Run Code Online (Sandbox Code Playgroud)

是我用来加载字体的代码.

<?xml version="1.0" encoding="utf-8"?>
<!--
This file contains an xml description of a font, and will be read by the XNA
Framework Content Pipeline. Follow the comments to customize the appearance
of the font in your game, and to change the characters which are available to draw
with.
-->
<XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics">
  <Asset Type="Graphics:FontDescription">

    <!--
    Modify this string to change the font that will be imported.
    -->
    <FontName>Arial</FontName>

    <!--
    Size is a float value, measured in points. Modify this value to change
    the size of the font.
    -->
    <Size>14</Size>

    <!--
    Spacing is a float value, measured in pixels. Modify this value to change
    the amount of spacing in between characters.
    -->
    <Spacing>0</Spacing>

    <!--
    UseKerning controls the layout of the font. If this value is true, kerning information
    will be used when placing characters.
    -->
    <UseKerning>true</UseKerning>

    <!--
    Style controls the style of the font. Valid entries are "Regular", "Bold", "Italic",
    and "Bold, Italic", and are case sensitive.
    -->
    <Style>Regular</Style>

    <!--
    If you uncomment this line, the default character will be substituted if you draw
    or measure text that contains characters which were not included in the font.
    -->
    <!-- <DefaultCharacter>*</DefaultCharacter> -->

    <!--
    CharacterRegions control what letters are available in the font. Every
    character from Start to End will be built and made available for drawing. The
    default range is from 32, (ASCII space), to 126, ('~'), covering the basic Latin
    character set. The characters are ordered according to the Unicode standard.
    See the documentation for more information.
    -->
    <CharacterRegions>
      <CharacterRegion>
        <Start>&#32;</Start>
        <End>&#126;</End>
      </CharacterRegion>
    </CharacterRegions>
  </Asset>
</XnaContent>
Run Code Online (Sandbox Code Playgroud)

是我正在使用的spritefont文件.它位于Content/Arial.spritefont.

无论我选择什么字体,它都无法加载该字体.

Error loading "Arial". File not found.
Run Code Online (Sandbox Code Playgroud)

And*_*ell 6

您发布的代码看起来很好,只要您设置内容根目录(此行是默认模板的一部分):

Content.RootDirectory = "Content";
Run Code Online (Sandbox Code Playgroud)

并且提供您已正确将.spritefont文件添加到您的内容项目并正确构建.检查是否Arial.xnbContent可执行文件旁边的目录中创建了一个文件(在您的构建目标中bin/Debugbin/Release取决于您的构建目标).

如果您仍有问题,请尝试创建一个新的XNA项目,看看是否可以使用该字体.

  • 你发布的所有内容都是我在解决方案中的内容.我开始了一个新项目并复制了代码,它工作得很好.不知道发生了什么,但现在工作正常. (2认同)