
构建仅包含单个三角形和纹理坐标的网格
using UnityEngine; using System.Collections; public class MeshTest : MonoBehaviour { void Start() { MeshFilter mf = GetComponent<MeshFilter>(); Mesh mesh = new Mesh(); mf.mesh = mesh; mesh.vertices = new Vector3[3] { new Vector3(0, 0, 0), new Vector3(0, 1, 0), new Vector3(1, 1, 0) }; mesh.uv = new Vector2[3] { new Vector2(0, 0), new Vector2(0, 1), new Vector2(1, 1) }; mesh.triangles = new int[3] { 0, 1, 2 }; } }
您会看到只有一个三角形

从下面的图片中可以看到创建3d模型,有1个三角形和3个顶点


构建两个三角形和纹理坐标的网格
using UnityEngine; using System.Collections; public class MyMesh : MonoBehaviour { void Start() { MeshFilter mf = GetComponent<MeshFilter>(); Mesh mesh = new Mesh(); mf.mesh = mesh; //顶点[决定绘制出来图片的scale] mesh.vertices = new Vector3[4] { new Vector3(0, 0, 0), new Vector3(1, 0, 0), new Vector3(0, 1, 0), new Vector3(1, 1, 0) }; //三角形顶点索引的顺序[3的倍数] mesh.triangles = new int[6] { 0, 2, 1, 2, 3, 1 }; //法线 mesh.normals = new Vector3[4] { new Vector3(0, 0, -1), new Vector3(0, 0, -1), new Vector3(0, 0, -1), new Vector3(0, 0, -1), }; //uv纹理坐标 mesh.uv = new Vector2[4] { new Vector2(0, 0), new Vector2(1, 0), new Vector2(0, 1), new Vector2(1, 1) }; } }

从下面的图片中可以看到,有2个三角形和4个顶点

三角形顶点的顺序不同,并且绘制效果也不同(mesh.triangles = new int [6] {0,2创建3d模型,1,0,3,1};)



1. 创建一个空的GameObject并绑定“网格过滤器”和“网格渲染器”组件

2. 创建材质,将图片拖入其中,将着色器修改为透明着色器


3. 将2创建的材质分配给1创建的GameObject的网格渲染器的材质.

4. 目前,默认情况下,此GameObject渲染在场景中不可见

5. 创建脚本MeshTest.cs代码(例如Demo1),将其绑定到GameObject,运行以查看效果
6. 创建脚本MyMesh.cs代码(例如Demo2),将其绑定到GameObject,运行以查看效果
创建Quad时,无需在Scene场景中运行即可看到它


其他方法的数据
Unity3D研究所基于动态两个轨迹点(20)的绘图表面的详细说明
[Unity3D学习]网格创建三角形和矩形
三角形网格(三角形网格)
【Unity C#编程】造星(1)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-194026-1.html