包含此页的版本:
不含此页的版本:
这网格Unity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表类是对象网格几何体的基本脚本接口。它使用数组来表示三角形、顶点位置、法线和纹理坐标,还提供了许多其他有用的属性和函数来帮助网格生成。
网格数据使用网格体过滤器(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>();
}
}
网格对象具有顶点及其关联数据(法线和UV坐标)以及三角形数据的属性。顶点可以按任何顺序提供,但法线和 UV 的数组必须有序,以便索引都与顶点相对应(即,法线数组的元素 0 提供顶点 0 的法线,等等)。顶点是表示对象局部空间中的点的 Vector3。法线是表示方向的归一化 Vector3,同样在局部坐标中。UV被指定为Vector2,但由于Vector2类型没有名为U和V的字段,因此你必须在心理上分别将它们转换为X和Y。
三角形被指定为整数的三元组,充当顶点数组的索引。数组不是使用特殊类来表示三角形,而只是一个简单的整数索引列表。每个三角形以三个为一组取这些元素,因此前三个元素定义第一个三角形,接下来的三个元素定义第二个三角形,依此类推。三角形的一个重要细节是角顶点的顺序。它们的排列方式应该使角顺时针旋转,当您俯视三角形的可见外表面时,尽管您从哪个角开始并不重要。
Mesh 类还具有较低级别的高级 API 这使你能够处理原始网格体顶点和索引缓冲区数据。这在需要最大性能或最低内存分配量的情况下非常有用。