XNA Monogame加载简单的FBX模型

时间:2014-07-29 23:33:06

标签: c# model xna monogame visual-studio-express

我正在尝试在Visual Studio Express 2013上使用Monogame加载fbx(cube.fbx)模型。我一直在环顾四周,从我所知道的应该是如此简单。但是,我无法找到解决问题的方法。

我的环境是带有Monogame的Visual Studio Express 2013。

我得到以下错误,无论我尝试了什么:

"无法将多维数据集资产加载为非内容文件"

我已将fbx文件的设置更改为:[内容,始终复制]

没有"内容导入器"或"内容处理器"选项根据:http://msdn.microsoft.com/en-us/library/bb203933.aspx

初始化功能是:

protected override void Initialize()
    {
        // TODO: Add your initialization logic here
        Model model;
        Texture2D tex2d;

        tex2d = Content.Load<Texture2D>("spot");
        model = Content.Load<Model>("cube");
        base.Initialize();
    }

程序在尝试加载模型的行处抛出错误。

希望这有点蠢。

我上传了测试解决方案,以便在此处重新创建问题: https://www.dropbox.com/s/2a6lir2z04kyv7u/CubeTest.rar

提前感谢您的帮助!

编辑:添加以下目录结构以显示测试应用程序的结构:

   C:.
│   CubeTest.sln
│
└───CubeTest
    │   CubeTest.csproj
    │   Game1.cs
    │   Icon.ico
    │   Program.cs
    │
    ├───bin
    │   └───Windows
    │       ├───Debug
    │       │   │   CubeTest.exe
    │       │   │   CubeTest.pdb
    │       │   │   CubeTest.vshost.exe
    │       │   │   Lidgren.Network.dll
    │       │   │   MonoGame.Framework.dll
    │       │   │   SharpDX.Direct2D1.dll
    │       │   │   SharpDX.Direct2D1.xml
    │       │   │   SharpDX.Direct3D11.dll
    │       │   │   SharpDX.Direct3D11.xml
    │       │   │   SharpDX.Direct3D9.dll
    │       │   │   SharpDX.Direct3D9.xml
    │       │   │   SharpDX.dll
    │       │   │   SharpDX.DXGI.dll
    │       │   │   SharpDX.DXGI.xml
    │       │   │   SharpDX.MediaFoundation.dll
    │       │   │   SharpDX.MediaFoundation.xml
    │       │   │   SharpDX.RawInput.dll
    │       │   │   SharpDX.RawInput.xml
    │       │   │   SharpDX.XAudio2.dll
    │       │   │   SharpDX.XAudio2.xml
    │       │   │   SharpDX.XInput.dll
    │       │   │   SharpDX.XInput.xml
    │       │   │   SharpDX.xml
    │       │   │
    │       │   └───Content
    │       │           Cube.fbx
    │       │           spot.png
    │       │
    │       └───Release
    ├───Content
    │       cube.fbx
    │       spot.png
    │
    ├───obj
    │   └───x86
    │       └───Debug
    │           │   CubeTest.csproj.FileListAbsolute.txt
    │           │   CubeTest.csprojResolveAssemblyReference.cache
    │           │   CubeTest.exe
    │           │   CubeTest.pdb
    │           │   DesignTimeResolveAssemblyReferencesInput.cache
    │           │
    │           ├───InProcessTempFiles
    │           │       _CubeTest.g.cs
    │           │
    │           └───TempPE
    └───Properties
            AssemblyInfo.cs

3 个答案:

答案 0 :(得分:5)

您的内容需要位于一个单独的项目中,这是一个恰当命名的“内容项目”,以便正确构建。在XNA中,您将向主项目添加内容引用,但在MonoGame中,我认为您需要手动添加指向构建内容项目时生成的.xnb文件的链接。

将cube.fbx和spot.png移动到内容项目中,然后右键单击 - &gt; “添加现有项”并从内容项目的输出文件夹中添加cube.xnb和spot.xnb。确保单击“添加”按钮上的箭头并选择“添加为链接”,这样您就可以使用最新的副本。

答案 1 :(得分:0)

您是否检查过您的档案是否在好地方?我有一个错误就像你在一个longggg时间,它只是因为我没有把我的文件放在我项目的好地方。

(检查项目参数和计算机上的文件)

答案 2 :(得分:0)

在您提供的解决方案中,fbx模型名为Cube.fbx,但您正在尝试&#34; cube&#34;。 fbx文件名中的大写C很重要。所以尝试加载&#34; Cube&#34;而不是&#34; cube&#34;