【发布时间】:2011-06-04 10:50:30
【问题描述】:
我在使用 XNA 编写的游戏中遇到了问题。我最近添加了带纹理的多边形,并看到每个带纹理的多边形共享相同的纹理,尽管我在调用之前对其进行了更改。我正在使用的代码:
if (countMeshes > 0)
{
for (int i = 0; i < countMeshes; i++)
{
TexturedMesh curMesh = listMeshes[i];
if (curMesh.tex == null)
{
drawEffect.Texture = WHITE_TEXTURE;
}
else
{
drawEffect.Texture = curMesh.tex;
}
drawEffect.Techniques[0].Passes[0].Apply();
graphics.DrawUserPrimitives(PrimitiveType.TriangleList, curMesh.verts, 0, curMesh.count);
}
}
现在,我首先想到的是为我需要绘制的每个纹理创建一个 BasicEffect。但我认为这有点矫枉过正,所以我的问题是:我应该怎么做?
PS:我仔细检查了所有内容,UV 坐标很好,而且是 2D。
【问题讨论】: