1

有 MonoGame 相当于 XNA 的ModelProcessor吗?

我正在使用一个自定义AnimatorProcessor类,派生自,类似于“更好的皮肤示例”ModelProcessor中所做的:

[ContentProcessor(DisplayName = "Animation Processor")]
public class AnimationProcessor : ModelProcessor
{
    // custom stuff
}

我现在正在尝试将此代码移植到 MonoGame,但似乎(尽管 MonoGame 最近有了自己的管道)ModelProcessorMonoGame 管道项目中没有类。

我可以使用 XNA 管道,但问题是所有模型内容类都使用实际的 XNA 类/结构(向量、四元数),它们位于与 MonoGame 完全相同的命名空间中,从而在我的主项目中产生编译时冲突。这意味着我应该将这些类从一个程序集 (XNA) 映射到另一个程序集 (MonoGame),这是相当丑陋的

(更新)

我意识到 MonoGame 确实有一个ModelProcessor内部MonoGame.Framework.Content.Pipeline程序集,但是还有一个额外的MonoGame.ContentPipeline程序集(我不确定它是否已经过时,或者仍然必须在管​​道中使用)。

但是,如果我重建我AnimationProcessor以使用 MonoGame 的ModelProcessor,那么 Visual Studio 将无法使用它来导入/处理我的 fbx 文件。构建内容项目失败"Cannot find content processor 'AnimationProcessor'",并且它甚至没有作为 .fbx 文件的下拉框中的选项提供(可能是因为 Visual Studio 查找派生自 XNA 处理器的类,并且它不关心 MonoGame)。

有谁知道我应该如何使用自定义处理器导入 fbx 内容,并且仍然有 MonoGame 类而不是 XNA 的?

4

1 回答 1

2

MonoGame 现在拥有自己的内容管道。因此,您真正需要做的是将自定义处理器移植到引用 MonoGame.Framework.Content.Pipeline 程序集的新库。该库随后将与 Pipeline 工具兼容。

您可以在http://www.monogame.net/documentation/?page=Using_The_Pipeline_Tool找到相关文档。具体查看自定义内容处理器部分。

于 2015-11-20T11:24:13.020 回答