Procedural Mesh 2020-05-14 mesh, tutorial, unity 评论 模型基本概念顶点 三角面 使用代码创建模型12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849using UnityEngine;public class ProceduralMesh : MonoBehaviour{ private Vector3[] _verticals; private int[] _triangles; private Mesh _mesh; // Start is called before the first frame update void Awake() { //获取相应组件 var meshFilter = gameObject.GetComponent<MeshFilter>(); var meshRenderer = gameObject.GetComponent<MeshRenderer>(); _mesh = meshFilter.mesh; } private void Start() { MakeMeshData(); CreateMesh(); } private void MakeMeshData() { //顶点数据 _verticals = new[] { new Vector3(0, 0, 0), new Vector3(0, 1, 0), new Vector3(1, 0, 0), new Vector3(1, 1, 0), }; //三角面信息 _triangles = new[] {0, 1, 2, 3, 2, 1}; } //创建Mesh private void CreateMesh() { _mesh.Clear(); _mesh.vertices = _verticals; _mesh.triangles = _triangles; _mesh.RecalculateNormals(); }} 顶点共用三角面可以共用顶点,但需要注意的是,使用共用顶点组成相邻面时,如果相邻面不在同一平面上,那么会平滑过渡。如果不公用点,则不会由此效果。