Unity - 来自精灵顶点的网格

时间:2017-08-31 13:46:44

标签: c# unity3d sprite mesh

我正试图从mesh的{​​{1}}创建一个sprite,如下所示:

vertices

问题是,没有错误,我得到一个简单的立方体,一个3D立方体。

我的private Mesh SpriteToMesh(Sprite sprite) { Mesh mesh = new Mesh { vertices = Array.ConvertAll(sprite.vertices, i => (Vector3)i), uv = sprite.uv, triangles = Array.ConvertAll(sprite.triangles, i => (int)i) }; return mesh; } 不是二次方,所以它确实有一些解决方案来减少透支。

问题是,如何从sprite中获取mesh

我这样做的原因是我需要在精灵边缘周围使用粒子效果来将网格物体用作发射器。

1 个答案:

答案 0 :(得分:2)

草皮,找到了路,也为什么我有一个神秘的立方体。

这样做的方法是这样的:

private Mesh SpriteToMesh(Sprite sprite)
{
    Mesh mesh = new Mesh();
    mesh.SetVertices(Array.ConvertAll(sprite.vertices, i => (Vector3)i).ToList());
    mesh.SetUVs(0,sprite.uv.ToList());
    mesh.SetTriangles(Array.ConvertAll(sprite.triangles, i => (int)i),0);

    return mesh;
}

这个多维数据集的原因很简单:在我的脚本中,我检查脚本所在的GameObject是否有一个MeshFilter,其上有一个网格。如果是这样,请使用它。我使用了Unity的标准资产'粒子系统作为创建我自己的粒子系统,他们在其上的MeshFilter组件中留下了一个立方体。

始终注意立方体组件,小伙子们。