unity中动态生成网格
以下是绘制正方形面片的一个例子,方便之后查阅:
效果如图所示:
红轴为x方向,蓝轴为z方向。
代码如下:
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 public class SingleMesh:MonoBehaviour 5 { 6 public int size = 1;//边长 7 public int segment = 5;//分段数 8 public Material mat;//mesh材质 9 private Vector3[] vertices;//顶点 10 private Vector2[] uv;//纹理坐标 11 private int[] triangles;//索引 12 13 14 [ContextMenu("Create Mesh")] 15 /// <summary> 16 /// 创建mesh 17 /// </summary> 18 private void CreateMesh() 19 { 20 GameObject obj_cell = new GameObject(); 21 obj_cell.name = "cell"; 22 Mesh mesh = new Mesh(); 23 mesh.Clear(); 24 SetVertivesUV();//生成顶点和uv信息 25 SetTriangles();//生成索引 26 mesh.vertices = vertices; 27 mesh.uv = uv; 28 mesh.triangles = triangles; 29 30 mesh.RecalculateNormals();//重置法线 31 32 mesh.RecalculateBounds(); //重置范围 33 obj_cell.AddComponent<MeshFilter>().mesh = mesh; 34 obj_cell.AddComponent<MeshRenderer>(); 35 obj_cell.GetComponent<MeshRenderer>().material = mat; 36 } 37 38 /// <summary> 39 /// 设置顶点信息 40 /// </summary> 41 private void SetVertivesUV() 42 { 43 vertices = new Vector3[(segment + 1) * (segment + 1)]; 44 uv = new Vector2[vertices.Length]; 45 int num = 0; 46 float m = (float)size / (float)segment; 47 for (int i = 0; i < segment + 1; i++) 48 for (int j = 0; j < segment + 1; j++) 49 { 50 vertices[num] = new Vector3(j * m,0, i * m); 51 uv[num] = new Vector2((float)j / segment, (float)i / segment); 52 num++; 53 } 54 55 } 56 /// <summary> 57 /// 设置索引 58 /// </summary> 59 private void SetTriangles() 60 { 61 triangles = new int[segment * segment * 6]; 62 int index = 0;//用来给三角形索引计数 63 for (int i = 0; i < segment; i++) 64 for (int j = 0; j < segment; j++) 65 { 66 int line = segment + 1; 67 int self = j + (i * line); 68 69 triangles[index] = self; 70 triangles[index + 1] = self + line + 1; 71 triangles[index + 2] = self + 1; 72 triangles[index + 3] = self; 73 triangles[index + 4] = self + line; 74 triangles[index + 5] = self + line + 1; 75 76 index += 6; 77 } 78 } 79 }
其中triangles索引为链接各定点的顺序,一个小格的链接顺序如下:
准则:三角形有两面,正面可见,背面不可见。三角形的渲染顺序与三角形的正面法线呈左手螺旋定则。大部分按顺时针:012,213
转载于:https://www.cnblogs.com/luxishi/p/6518366.html
unity中动态生成网格相关推荐
- Unity Tilemap动态生成2d地图
Unity Tilemap动态生成2d地图 (参考链接) rule tile 动态生成地图:https://blog.csdn.net/mkr67n/article/details/108340749 ...
- Unity使用c#开发遇上的问题(六)(3dmax围绕指定中心旋转,unity中动态调用预制体并根据模型旋转指定角度)
文章目录 前言 一.3dmax创建子弹.炮塔及武器库 1.相关模型 2.炮塔模型引入unity,无法绕旋转球旋转,重新调整 1.3dmax中默认炮管的中心点 2.选择层次界面 3.选择编辑工作轴 4. ...
- word文档中动态生成excel表格(基金公告系列讲解)
1.本博文仅为了将之前工作中动态生成XBRL文件需求中word文档动态生成excel部分进行了实现(虽然隔着时间比较久),闲暇之余的考虑,应对大批量文件生成时可采用定时任务+多线程技术+redis队列 ...
- android 动态显示表格,在Android Studio中动态生成并显示表格
我在Android上创建我的第一个应用程序,因此我有低开发android应用程序的经验,而且我也是第一次使用java.在Android Studio中动态生成并显示表格 我想要什么? 我想从Array ...
- R语言使用keras包实现卷积自动编码器模型(Convolutional Autoencoder)、加载keras自带的mnist数据集、训练中动态生成每个epoch后模型训练的loss曲线
R语言使用keras包实现卷积自动编码器模型(Convolutional Autoencoder).加载keras自带的mnist数据集.训练中动态生成每个epoch后模型训练的loss曲线 目录
- Unity中动态修改Terrain地形
以下类实现了在Unity中动态的修改Terrain的功能,可以在运行时升高.降低以及平滑地形高度.在Unity的Play Mode修改地形后退出Play Mode仍然会保留修改:当游戏打包成独立的可执 ...
- 使用POI在Excel中动态生成图表工具类(支持柱状、组合、环状图、折线图、等常用图)
使用POI在Excel中动态生成图表工具类 使用POI在Excel中动态生成图表工具类 由于公司是一个生成报表的机构,之前一直使用pageOffice,但是公司领导就是不买,你说公司那样有钱磨磨唧唧干 ...
- Unity 代码动态生成模型
网格由 3D 空间中排列的三角形组成,旨在产生实体对象的效果.三角形由其拐点或者顶点定义.在 Mesh 类中,顶点全部存储在单个数组中,并且每个三角形使用与顶点数组的索引对应的三个整数指定.这些三角形 ...
- [专栏精选]Unity中动态构建NavMesh
本文节选自洪流学堂公众号专栏<郑洪智的Unity2018课>,未经允许不可转载. 洪流学堂公众号回复专栏,查看更多专栏文章. 小新:"Unity内置的Navigation系统是不 ...
- 在JSP中动态生成随机验证码,登录时后台校验验证码,以及如何避免同一个验证码被重复提交爆破密码...
只需几步就可以生成动态随机的验证码,最终效果如下图: 一 前台显示页面login.jsp 其中验证码显示的是一张图片,链接指向的是生成验证码的servlet,同时点击图片后触发changeImg()这 ...
最新文章
- JGG:遗传发育所白洋组和曹晓风组-水稻组蛋白甲基化调控根系核心菌群
- PHP将excel文件中的数据批量导入到数据库中
- 极索(Gsuo)推出新版地图采用Gmap设计思路
- 080703 雨&星巴克的菜单
- [转]软件测试的完整分类
- 前端开发工程师---技术路线图
- linux环境下安装OpenGL
- Shell脚本学习-阶段九-数据库被攻击恢复
- J2EE的十三个技术规范
- 计算机网络未来的发展和趋势论文,计算机网络发展论文范文
- VBA实战代码大全-下载
- MAPGIS做图指导
- rapidxml的简单使用
- 一次完整的HTTP请求过程(深入分析)
- Python学习笔记(11)-Python进阶11-函数
- Kotlin 苦海无涯(一)
- 化妆品电商供应链系统解决方案:美妆化妆品品牌供应链质量管理、产品定位
- 成就系统和任务系统的设计
- 局域网内共享vmware虚拟机
- 股票入门基础知识16:财务比率的局限性
热门文章
- 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御
- 关于软件测试学习的心得
- centos6使用bacula备份系统
- 山寨笔记本电脑风暴要来了
- 谜题35:一分钟又一分钟
- spring boot: 一般注入说明(五) @Component, application event事件为Bean与Bean之间通信提供了支持...
- 在Centos6.8上为安装Django1.11.1升级Python2.6到Python3.5
- c#利用泛型集合,为自己偷偷懒。
- powershell excel 导入 sqlserver
- Xcode 6 免证书真机调试