【问题标题】:Properly load in texture assets XNA正确加载纹理资产 XNA
【发布时间】:2017-08-18 16:11:04
【问题描述】:

我一直在使用这个静态 TextureManager 类,它允许您调用通过该类加载的纹理。然而,这一次在不同的项目中,它无法找到纹理文件,因此不断抛出空引用错误。

TextureManager 类中的加载内容:

    public static void LoadContent(ContentManager content)
    {
        Monster1 = content.Load<Texture2D>(@"Textures/IfritHead");
        Monster2 = content.Load<Texture2D>(@"Textures/DragonHead");
    }

1. 我在 game1 中的 content.root 目录(不确定这是否重要)设置为“内容”。

2.我已经将纹理文件添加到内容管道中(我假设这里有一些问题,但正如我之前提到的,我使用过这个类之前但我还是找不到问题)

3.我已将纹理的属性设置为“如果较新则复制”。

4.我在某处读到重新安装 XNA 可能会有所帮助,这是真的吗?

5.我之前在其他项目中使用过这个类,它工作得很好。

6.如果有任何帮助,我正在使用 VS 2015 和 XNA 3.0。

有人知道如何正确导入资产吗?我不确定我是否遗漏了一些非常明显的东西......

【问题讨论】:

  • 您提到您正在使用 XNA,但您在问题中添加了 monogame 标签。这是 XNA 还是 Monogame 项目模板?
  • Monogame 模板,我的印象是它们是同一个东西,但是在一个快速的 google monogame 被重写后表现得像 XNA。
  • Monogame 封装了 XNA 功能并在此基础上进行构建。为了使用Monogame,您还必须安装XNA(或者在我使用它时曾经是这样)。问题是,人们在 Monogame 中导入纹理时遇到问题并不少见,所以问题是:您使用的是哪一个?
  • 尝试更新纹理的属性 -> 构建动作 -> 内容
  • @GMich 它被设置为默认值。抱歉回复晚了。

标签: c# xna monogame


【解决方案1】:

首先,您应该考虑改用 MonoGame,而不是使用(非常)过时的 XNA。 其次,这是人们经常遇到的一个问题。 除了您已经提到的检查之外,文件是否复制到内容文件夹中?在您的情况下,它应该是 Content/Textures/[your texture]

您说,您正在使用管道工具。您是否正确构建了 xnb 文件,或者该工具在构建期间是否报告了任何问题?

【讨论】:

  • 如果复制意味着文件实际上位于指定的文件夹中,或者如果设置复制到输出设置为“如果较新则复制”,无论哪种方式,它们都已完成。关于管道的事情,我已经通过进入管道并按下构建按钮成功地添加和构建了文件,所以我认为那里没有任何故障。文件的导入器设置也设置为纹理,因此没有导入器错误。唯一的错误是纹理的空引用异常,我的 Monster1 引用弹出为空。
猜你喜欢
  • 2012-09-05
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 2020-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多