unity mesh
时间: 2025-02-09 18:07:09 浏览: 39
### Unity 中 Mesh 的概念
在 Unity 内,`Mesh` 是一种重要的图形基元组件,通常被称为网格组件[^2]。此组件负责定义物体表面的几何形状,由顶点、边和面组成。
#### 创建简单的 Mesh 对象
为了更好地理解 `Mesh` 组件的工作原理,下面提供一段创建简单四边形网格对象的 C# 脚本:
```csharp
using UnityEngine;
public class SimpleQuadCreator : MonoBehaviour {
private void Start() {
// 初始化一个新的 Mesh 实例
Mesh mesh = new Mesh();
Vector3[] vertices = new Vector3[4];
int[] triangles = new int[6];
// 定义四个角的位置 (顺时针方向)
vertices[0] = new Vector3(0f, 0f, 0f);
vertices[1] = new Vector3(1f, 0f, 0f);
vertices[2] = new Vector3(1f, 0f, 1f);
vertices[3] = new Vector3(0f, 0f, 1f);
// 设置三角形索引数组来描述如何连接这些顶点形成两个三角形
triangles[0] = 0;
triangles[1] = 2;
triangles[2] = 1;
triangles[3] = 0;
triangles[4] = 3;
triangles[5] = 2;
// 将数据应用到 Mesh 上
mesh.vertices = vertices;
mesh.triangles = triangles;
// 更新法线向量以便正确光照计算
mesh.RecalculateNormals();
// 获取当前游戏对象上的 Mesh Filter 和 Mesh Renderer 并分配新创建的 Mesh 数据给它们
var filter = gameObject.AddComponent<MeshFilter>();
filter.mesh = mesh;
gameObject.AddComponent<MeshRenderer>();
Debug.Log("Simple Quad Created");
}
}
```
这段代码展示了怎样通过编程方式生成一个基本的矩形平面,并将其附加至场景中的某个 GameObject 上显示出来[^1]。
#### 不同类型的网格拓扑结构
除了上述例子中提到的标准三角剖分外,还可以利用其他几种不同的网格绘制模式,比如线条(`Lines`) 或者多边形(`Quads`) 来实现特定效果[^3]。例如,在某些情况下可能更倾向于使用 `SetIndices()` 方法指定自定义索引来控制渲染顺序。
阅读全文
相关推荐
















