石家庄网站建设模板服务厦门网站建设u
石家庄网站建设模板服务,厦门网站建设u,福建建设注册管理中心网站,做3d教学网站文章目录 前言一、Mesh组成二、使用步骤三、效果四、总结 前言
Mesh#xff08;网格#xff09;是一种常用的3D图形表示方法#xff0c;它由顶点#xff0c;法线#xff0c;UV 坐标#xff0c;和三角形等组成。您可以使用 Mesh 类的方法来创建或修改网格#xff0c;也可… 文章目录 前言一、Mesh组成二、使用步骤三、效果四、总结 前言
Mesh网格是一种常用的3D图形表示方法它由顶点法线UV 坐标和三角形等组成。您可以使用 Mesh 类的方法来创建或修改网格也可以使用 MeshFilter 组件或 MeshRenderer 组件来显示网格。UnityMesh 可以用于制作各种 3D 场景和效果例如地形水面粒子布料等。 一、Mesh组成
顶点vertex顶点是物体表面上的点用 Vector3 类型表示它们在局部空间中的位置。 法线normal法线是顶点的方向用 Vector3 类型表示它们在局部空间中的单位向量。 UV 坐标uvUV 坐标是顶点的纹理坐标用 Vector2 类型表示它们在纹理图像中的位置。 三角形triangle三角形是物体表面上的面用整数数组表示它们由哪些顶点组成。每个三角形由三个顶点索引构成顶点索引是顶点数组中的位置。
二、使用步骤
首先我们需要在 Unity 中创建一个空的 3D 项目。然后我们需要在场景中添加一个空的游戏对象我们可以把它命名为 “Triangle” 这将是我们的网格生成器。为了让我们的网格能够显示在屏幕上我们还需要给它添加一些组件分别是
MeshFilter这个组件允许我们上传和存储我们的网格数据以供 Unity 的图形 API 渲染。 MeshRenderer这个组件负责渲染我们的网格我们给它指定一个材质来改变网格的颜色和外观。 C# 脚本这个组件是我们编写网格生成逻辑的地方我们把它命名为 “Test”
下图是我们的游戏对象在inspector面板中的样子
首先我们需要在游戏对象上添加MeshFilter组件和MeshRenderer组件。这可以通过RequireComponent属性来实现它会在挂载脚本的时候自动添加指定的组件。
//挂载脚本的时候自动添加下面的组件
[RequireComponent(typeof(MeshFilter)),RequireComponent(typeof(MeshRenderer))]然后我们需要在Start方法中创建一个Mesh对象并获取MeshFilter组件的引用。我们可以使用new关键字来实例化一个Mesh对象并赋值给一个变量。我们还可以给mesh一个名字方便在编辑器中识别。我们可以使用GetComponent方法来获取MeshFilter组件的引用并将mesh赋值给它的mesh属性。
void Start()
{//创建一个Mesh对象Mesh mesh new Mesh();//获取MeshFilter组件的引用var meshFilter GetComponentMeshFilter();//将mesh赋值给MeshFilter组件的mesh属性meshFilter.mesh mesh;//给mesh一个名字mesh.name Mesh01;
}接下来我们需要设置mesh的顶点和三角形。顶点是一个Vector3数组表示三维空间中的点的坐标。三角形是一个int数组表示顶点数组中的索引每三个索引构成一个三角形。我们可以使用mesh的vertices属性和triangles属性来设置这些信息。
private Vector3[] GetVertexs()
{//返回一个包含三个顶点的数组return new[]{new Vector3(0, 0, 0), //第一个顶点索引为0new Vector3(1, 0, 0), //第二个顶点索引为1new Vector3(1, 1, 0), //第三个顶点索引为2};
}private int[] GetTriangles()
{//返回一个包含三个索引的数组return new[]{0,1,2 //构成一个三角形的索引};
}void Start()
{//设置mesh的顶点mesh.vertices GetVertexs();//设置mesh的三角形mesh.triangles GetTriangles();
}这样我们就完成了一个三角面的mesh的创建。我们可以在场景中添加一个空的游戏对象并将Test脚本挂载到上面。然后我们可以在Game视图中看到一个紫色的三角形这就是我们创建的mesh。
如果我们想要给mesh添加一些颜色我们还需要设置mesh的材质material。材质是一个Material对象它定义了mesh的外观如颜色、光照、纹理等。我们可以使用MeshRenderer组件的material属性来设置这些信息。
void Start()
{//获取MeshRenderer组件的引用var meshRenderer GetComponentMeshRenderer();//创建一个Material对象Material material new Material(Shader.Find(Standard));//设置材质的颜色为红色material.color Color.red;//将材质赋值给MeshRenderer组件的material属性meshRenderer.material material;
}
这样我们就给mesh添加了一些颜色。我们可以在Game视图中看到一个红色的三角形这就是我们创建的mesh。
三、效果 四、总结
你已经学会了如何在 Unity 中简单地创建一个三角面。这是一个很基础的教程但是它涉及了一些重要的概念比如网格顶点三角形索引坐标等。你可以尝试修改你的代码创建不同的形状比如四边形五边形甚至更复杂的多边形。你也可以给你的网格添加一些颜色纹理光照等效果让它更加美观
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88537.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!