参考Brackeys视频 https://www.youtube.com/watch?v=eJEpeUH1EMg
步骤
一个空GameObject 叫做Mesh Generator
创建Mesh Filter:存储mesh自身,存储所有关于shape的信息
以及Mesh Renderer:向filter拿去data并且渲染让我们可见
概念
注意顶点vertex,position
存储成一个array,vertex array,
用triangle填充成为triangle array;
- 三角形可以共用同一个顶点。
- Backface culling 为了一些性能,将背面删除不显示,unity用于决定这些三角形朝向的是我们feed it的顺序,使用的是顺时针(clockwise),如果次序是逆时针,那么就是朝向反面。其中顺序,从哪个点先开始是无所谓的。
创建script
using UnityEnginel
[RequireComponent(typeof(MeshFilter))]
public class MeshGenerator: MonoBehaviour{
Mesh mesh;
Vector3[] vertices;
int[] triangles;
void Start(){
mesh = new Mesh();
GetComponent<MeshFilter>().mesh = mesh;
CreateShape();
}
void CreateShape()
{
vertices = new Vector3[]
{
new Vector3(0,0,0),
new Vector3(0,0,1),
new Vector3(1,0,0),
new Vector3(1,0,1),
}
traiangles = new int[]
{
0,1,2
1,3,2
}
}
void UpdateMesh()
{
mesh.Clear();
mesh.vertices = vertices;
mesh.triangles = triangles;
mesh.ReCalculateNormal();
}
}