【发布时间】:2015-04-16 08:22:54
【问题描述】:
在 Xna 中,我想用自定义效果绘制我的模型。所以我想从网格中获取纹理。
foreach (ModelMesh mesh in model.Meshes)
{
foreach (ModelMeshPart part in mesh.MeshParts)
{
effect.Parameters["World"].SetValue(World );
effect.Parameters["View"].SetValue(View);
effect.Parameters["Projection"].SetValue(Projection);
effect.Parameters["TextureEnabled"].SetValue(true);
var basicEffect = part.Effect as BasicEffect;
if (basicEffect != null)
{
Texture2D texName = basicEffect.Texture;
effect.Parameters["Texture"].SetValue(texName);
}
part.Effect = effect;
}
mesh.Draw();
}
如果我运行此代码,模型是黑色的。但如果我删除 if (basicEffect != null),它会正确显示 1 帧,但随后会出现 Null 异常。
谢谢
【问题讨论】: