无法使用ContentTypeReader加载模型

时间:2012-12-09 19:39:07

标签: c# asp.net xna xna-4.0

我正在编写一个我想使用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";        
    }
}

有人在此之前注意到这种错误吗?

1 个答案:

答案 0 :(得分:1)

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

我找到了解决办法!

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

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

- 将会