C# XNA不自动加载模型纹理

C# XNA不自动加载模型纹理,c#,model,xna,textures,C#,Model,Xna,Textures,我有一个很像n00b的问题。。我有一个XNA小游戏,我尝试导入一个微软已经制作并提供的3D模型。问题是XNA没有加载与该模型关联的纹理,即使它确保与该模型关联的纹理存在于项目目录中(如果编译器找不到这些纹理,则会出错)。。所以基本上我只看到一个大的粘土模型:P 这张图片显示了我得到的结果: 应该是这样的: 这里有我遗漏的东西吗?XNA不应该自动应用与特定模型关联的所有纹理吗?在渲染dude.fbx模型时,请确保在绘制模型的循环中具有以下内容: foreach (ModelMesh mesh

我有一个很像n00b的问题。。我有一个XNA小游戏,我尝试导入一个微软已经制作并提供的3D模型。问题是XNA没有加载与该模型关联的纹理,即使它确保与该模型关联的纹理存在于项目目录中(如果编译器找不到这些纹理,则会出错)。。所以基本上我只看到一个大的粘土模型:P

这张图片显示了我得到的结果:

应该是这样的:


这里有我遗漏的东西吗?XNA不应该自动应用与特定模型关联的所有纹理吗?

在渲染
dude.fbx
模型时,请确保在绘制模型的循环中具有以下内容:

foreach (ModelMesh mesh in model.Meshes)
{
    foreach (BasicEffect effect in mesh.Effects)
    {
        effect.EnableDefaultLighting();
    }
}

这是我的想法,因此方法调用可能不正确。

Xna不会自动加载模型的纹理。 当纹理不存在时得到的异常是由Xna的资源编译器引发的,与实际导入任何内容无关

解决此问题的方法是在
LoadContent()
中手动加载纹理,或者在
ContentManager
中使用以下工具加载纹理:

modelTexture = Content.Load<Texture2D>("mytexture");
(但显然不应在
LoadContent()
中绘制)


注意
eff.TextureEnabled=true
使用
basicefect

时激活纹理所需的代码可以提供加载此纹理的代码吗?
foreach (ModelMesh mesh in model.Meshes)
{
    foreach (BasicEffect eff in mesh.Effects)
    {
        eff.TextureEnabled = true;
        eff.Texture = modelTexture;
    }
    mesh.Draw();
}