【问题标题】:Monogame Custom Importer/Processor not being detected by Content Manager内容管理器未检测到 Monogame 自定义导入器/处理器
【发布时间】:2021-04-01 12:14:45
【问题描述】:

与标题中的内容差不多。

我已经为我的项目的内容管理器构建了第二个 .dll 文件,其中包含我的内容导入器/处理器,并在我的“参考”部分添加了该 .dll 文件,但什么也没有。管理器未检测到我的自定义进口商/处理器。不知道发生了什么,我找不到其他人遇到这样的问题,所以我希望有经验的人可以在这里帮助我!

顺便说一下,我正在使用 Json.NET 进行 Json 反序列化。

谢谢你:)

MapJson 代码:

public class MapJson
{
    [JsonProperty("name")]
    public String Name = "";

    [JsonProperty("width")]
    public Int32 MapWidth = 0;

    [JsonProperty("height")]
    public Int32 MapHeight = 0;
}

进口商代码:

[ContentImporter(".amap", DefaultProcessor = "MapProcessor", DisplayName = "Map Importer - Engine")]
public class MapImporter : ContentImporter<MapJson>
{
    public override MapJsonImport(string filename, ContentImporterContext context)
    {
        string json = new FileHandle(filename).ReadAll();
        MapJson data = JsonConvert.DeserializeObject<MapJson>(json);
        return data;
    }
}

处理器代码:

[ContentProcessor(DisplayName = "Map Processor - Engine")]
public class MapProcessor : ContentProcessor<MapJson, MapJson>
{
    public override MapJson Process(MapJson input, ContentProcessorContext context)
    {
        return input;
    }
}

编写者代码:

[ContentTypeWriter]
public class MapWriter : ContentTypeWriter<MapJson>
{
    protected override void Write(ContentWriter writer, MapJson value)
    {
        writer.Write(value.Name);
        writer.Write(value.MapWidth);
        writer.Write(value.MapHeight);
    }
}

阅读器代码:

public class MapReader : ContentTypeReader<Map>
{
    protected override Map Read(ContentReader reader, Map existingInstance)
    {
        MapJson data = new MapJson();
        data.Name = reader.ReadString();
        data.MapWidth = reader.ReadInt32();
        data.MapHeight = reader.ReadInt32();

        // this constructor just sets my 'Map' class's Name, MapWidth and MapHeight variables
        return new Map(data);
    }
}

【问题讨论】:

    标签: c# xna game-engine monogame game-development


    【解决方案1】:

    嗯,这很尴尬......
    解决方案是先构建游戏项目,然后实际重新构建内容导入器/处理器项目,然后将其与内容管理器链接!
    我觉得好傻哈哈

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-26
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      • 1970-01-01
      相关资源
      最近更新 更多