我第一次尝试在 XNA 中制作 3D 游戏,我已经有 2D 和 C# 编码的经验,但这让我有点失望。
我正在尝试在 3D 对象(我正在 Blender 中处理的未完成的枪模型)上绘制纹理,模型加载,但完全是白色(有意),现在我想在枪上绘制灰色使用这个:
private void DrawModel(Model model, Matrix world, Matrix view, Matrix projection)
{
foreach (ModelMesh mesh in model.Meshes)
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.EnableDefaultLighting();
effect.TextureEnabled = true;
effect.Texture = guntexture;
effect.World = world;
effect.View = view;
effect.Projection = projection;
}
mesh.Draw();
}
}
guntexture 是我以正常方式加载的 Texture2D,基本上是用 Paint 制作的灰色方块。
问题是现在当我编译时,我得到这个错误:“当前顶点声明不包括当前顶点着色器所需的所有元素。TextureCoordinate0 丢失。”
更重要的是,我觉得错误是由这两个产生的:
effect.TextureEnabled = true;
effect.Texture = guntexture;
删除第一个会导致游戏编译,但没有纹理。保留它并将其设置为 false 也是如此。我也尝试重新排序它,但没有奏效,同样的事情。
请帮助我了解发生了什么,纹理有问题吗?还是枪?
此外,我可以使用默认照明毫无错误地点亮枪。