【问题标题】:Unity - mesh from sprite verticesUnity - 来自精灵顶点的网格
【发布时间】:2018-02-09 12:07:14
【问题描述】:

我正在尝试从spritevertices 创建一个mesh,如下所示:

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;
}

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

我的sprite 不是二次的,所以它确实有一些分辨率来减少透支。

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

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

【问题讨论】:

    标签: c# unity3d sprite mesh


    【解决方案1】:

    Sod it,找到了方法以及为什么我得到了一个神秘的立方体。

    这样做的方法是这样的:

    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 组件中留下了一个立方体。

    小伙伴们,请时刻注意立方体组件。

    【讨论】:

      猜你喜欢
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多