gpt4 book ai didi

c# - Unity - 来自 Sprite 顶点的网格

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:39 25 4
gpt4 key购买 nike

我正在尝试从 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 不是二次方的,所以它确实有一些分辨率来减少 overdraw 。

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

我这样做的原因是我需要 Sprite 边缘周围的粒子效果才能将网格用作发射器。

最佳答案

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 的 Standard Assets 粒子系统作为基础来创建我自己的粒子系统,他们在其上的 MeshFilter 组件中留下了一个立方体。

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

关于c# - Unity - 来自 Sprite 顶点的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45983064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com