博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity自定义mesh绘制
阅读量:6712 次
发布时间:2019-06-25

本文共 1179 字,大约阅读时间需要 3 分钟。

hot3.png

有些时候需要自定义mesh来绘制目标模型图形什么的,可以代码控制,也可以通过shader去控制,这里介绍代码控制的方法:

基本思路是修改mesh的定点,三角 达到自定义的目的,和上上篇垂直UI.Text 显示异曲同工之处。

由于一个mesh是有顶点信息,和对应三角形组合而成。

150802_DwAa_1391394.png

如图中的一个Quad比如4个顶点,0,1,2,3  可以组合为2个三角形信息,三角形1由顶点0,1,2 三角形2由定点2,3,0组成 , 组成了一个面

151321_Sto2_1391394.png

4个顶点 和一个三角形,组合为了一个面

151154_6oLq_1391394.png

又比如如图的4个顶点,2个三角形生成这样的图形,组成了2个面

151235_pMiU_1391394.png

又比如4个顶点3个三角形生成这样的图形,组成了3个面。三角顺序 顺时针 才会是你想看的面的绘制 逆时针就是反面了

void OnDrawGizmos()    {        MeshFilter filter = this.GetComponent
(); MeshRenderer render = this.GetComponent
(); var mesh = filter.mesh; var ts = this.GetComponentsInChildren
(); Vector3[] vers = new Vector3[ts.Length]; for (int i = 0; i < ts.Length; i++) { vers[i] = ts[i].position; } var tris = new int[] { 0, 1, 2, 0,1,3,1,2,3 }; // mesh.Clear(); mesh.vertices = vers; mesh.triangles = tris; mesh.RecalculateNormals(); mesh.RecalculateBounds(); this.GetComponent
().sharedMesh = mesh; filter.mesh = mesh; }

和Lite2D engine中的顶点有点相似,建模也是只做这些东西,之所以可以这样玩是有些模型网格什么的需要代码去生成,比如地形破坏,比如下图

151508_y9Vk_1391394.png该游戏是异星探险家,

又或者流体计算等等

转载于:https://my.oschina.net/kkkkkkkkkkkkk/blog/1545422

你可能感兴趣的文章
LeetCode 42 javascript解决方案
查看>>
开发一对一直播系统您需要注意的内容
查看>>
开源|ns4_frame分布式服务框架开发指南
查看>>
用Vue封装Swiper实现图片轮播很简单
查看>>
Android Sensor源码分析总结
查看>>
(基础系列)object clone 的用法、原理和用途
查看>>
图片 文件 转base64
查看>>
Spring Cloud分布式微服务云架构集成项目
查看>>
springmvc整合dubbo
查看>>
函数防抖
查看>>
2月阅读书单及推荐(前端)
查看>>
面试中并发类问题的准备和学习
查看>>
Vuex源码学习(四)module与moduleCollection
查看>>
python基础总结 Part.1
查看>>
【OC梳理】description
查看>>
一篇不太一样的RxJava介绍(二):关于操作符背后的故事
查看>>
FFmpeg模块介绍
查看>>
张家口a货翡翠,梧州a货翡翠
查看>>
JS Object的静态方法汇总( 上 )
查看>>
到手机里面去点击信任就行了。每次都是这样出错。
查看>>