该 MeshUnity 的主要图形基元。网格构成了您 3D 世界的大部分。Unity 支持三角形或四边形多边形网格。NURBS、NURMS、细分曲面必须转换为多边形。 更多信息
请参阅 术语表 类是对象网格几何体的基本脚本接口。它使用数组来表示三角形、顶点位置、法线和纹理坐标,并且还提供了一些其他有用的属性和函数来帮助生成网格。
网格数据使用 Mesh Filter一个网格组件,它从您的资源获取网格并将其传递给 Mesh Renderer 以在屏幕上渲染。 更多信息
请参阅 术语表 组件(并且该对象还需要一个 MeshRenderer 来使几何体可见)附加到对象。可以使用熟悉的 GetComponent 函数访问此组件。
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
MeshFilter mf;
void Start()
{
//if this gameObject has a MeshFilter, mf will reference the component
mf = GetComponent<MeshFilter>();
}
}
Mesh 对象具有顶点及其关联数据(法线和 UV 坐标)以及三角形数据的属性。顶点可以以任何顺序提供,但法线和 UV 数组必须按顺序排列,以便所有索引都与顶点对应(即,法线数组的元素 0 提供顶点 0 的法线,等等)。顶点是 Vector3s,表示对象局部空间中的点。法线是规范化的 Vector3s,表示方向,同样在局部坐标中。UV 指定为 Vector2s,但由于 Vector2 类型没有名为 U 和 V 的字段,因此您必须在心理上将它们分别转换为 X 和 Y。
三角形指定为三元组整数,充当顶点数组的索引。与其使用特殊类来表示三角形,不如将数组简单地作为整数索引列表。这些以每三角形三组的形式取,因此前三个元素定义第一个三角形,接下来的三个元素定义第二个三角形,依此类推。三角形的一个重要细节是角顶点的顺序。它们应该排列以便角顶点在您向下看三角形的可见外表面时呈顺时针方向,尽管您从哪个角开始并不重要。
该 Mesh 类还具有更低级的先进 API,使您能够使用原始网格顶点和索引缓冲区数据。这在需要最大性能或最低内存分配的情况下非常有用。