【Unity x Mesh】网格生成笔记①-基础

参考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;

顶点数组与三角形数组.jpg
  • 三角形可以共用同一个顶点。
  • 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().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();
}

}

你可能感兴趣的:(【Unity x Mesh】网格生成笔记①-基础)