2

我正在编写一个我想使用 ContentTypeReader 的游戏。像这样加载我的模型时:

terrain = Content.Load<Model>("Text/terrain");

我收到以下错误:

Error loading "Text\terrain". Cannot find ContentTypeReader
AdventureGame.World.HeightMapInfoReader,AdventureGame,Version=1.0.0.0,Culture=neutral.

我读过这种错误可能是由程序集名称中的空格引起的,所以我已经将它们全部删除了,但仍然会发生异常。

这是我的内容类:

[ContentTypeWriter]
public class HeightMapInfoWriter : ContentTypeWriter<HeightmapInfo>
{
    protected override void Write(ContentWriter output, HeightmapInfo value)
    {
        output.Write(value.getTerrainScale);
        output.Write(value.getHeight.GetLength(0));
        output.Write(value.getHeight.GetLength(1));

        foreach (float height in value.getHeight)
        {
            output.Write(height);
        }       
    }

    public override string GetRuntimeType(TargetPlatform targetPlatform)
    {
        return
            "AdventureGame.World.Heightmap,AdventureGame,Version=1.0.0.0,Culture=neutral";
    }

    public override string GetRuntimeReader(TargetPlatform targetPlatform)
    {
        return
        "AdventureGame.World.HeightMapInfoReader,AdventureGame,Version=1.0.0.0,Culture=neutral";        
    }
}

以前有没有人遇到过这种错误?

4

1 回答 1

1

我已经遇到同样的问题一周了,最后决定对整个“装配”部分进行快速检查。

我找到了解决办法!

本质上,当您进入 AssemblyInfo.cs 时,您将看到所有属性(即标题、描述等)

遗憾的是,由 XNA 制作的标题并不是您的运行时读者所指的。它实际上获得了项目的初始名称,它使用它来追踪您项目中的应用程序 (exe) 文件。尝试从头开始重新制作您的项目,确保您的命名空间与您的项目相同并且永远不要更改它,或者尝试重新命名您的 exe 文件,在您的项目的 debug/obj 文件夹中找到(我相信)。希望我有帮助!

-将要

于 2012-12-24T07:57:59.943 回答