02 2020 档案
摘要:1.前言 配置根据unity工程.gitignore文件进行分析,本文转载 在windows下可以创建文件名为.gitignore.,保存之后系统会自动重命名为 .gitignore 2.文件示例 以下为一个忽略文件示例内容 /[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ /[Bb]
阅读全文
摘要:1.前言 转载 2.方法 2.1 登入Gerrit 登录Gerrit,登录成功后进入设置界面,如下所示: 2.2 配置Git 安装git后再空白位置右键git bash,然后按如下步骤操作: 1) $ git config --global user.name “jodie.zhou” 2) $ g
阅读全文
摘要:1.前言 本文承接上一节,主要讲一下如何用graphics绘制一个Mesh以及将绘制结果绘制到一个RenderTexture上。代码在文末。 2.Graphics DrawMesh 代码中所用材质shader为Unlit/Texture。 2.1 ToScreen 以下为绘制到屏幕上的示例代码: p
阅读全文
摘要:1.前言 本文主要针对Graphics类进行texture和mesh的绘制。 2.Draw Texture 使用Graphics类直接进行Texture绘制时,由于属于直接绘制到平面上,所以需要转换到平面像素空间内,所以需要用到LoadPixelMatrix方法。对于空间转换可以参考这一节 2.1
阅读全文
摘要:1.前言 CommandBuffer为渲染命令缓冲区,我们将一些列渲染指令添加到CommandBuffer中,在需要执行时通过Camera或者Graphics类进行执行,进而实现对渲染流程的控制。同时可以实时生成我们需要的临时效果。本文完整代码在最后。 2.基本方法 目前只介绍CommandBuff
阅读全文
摘要:1.前言 本文通过GL类实现一个动态画线功能,即鼠标每点击一下,会画出一条线,同时会出现一条动态线。 2.代码 由于通过input类获取到的鼠标坐标为屏幕像素值,所以线的坐标也为像素坐标,所以实在屏幕空间下进行绘制。 using System.Collections; using System.Co
阅读全文
摘要:1.前言 采用GL类以及Graphics类进行绘制图形时,都需要用到坐标变换。这跟采用图形学接口进行绘制时相同。以一个球为例,如果在坐标原点处绘制,球心坐标为0。如果在其他位置绘制,球心坐标不为0,此时球面顶点坐标需要重新计算。如果采用矩阵变换(坐标变换),将坐标原点移动到球心所在的位置,则球心仍在
阅读全文
摘要:1.前言 在GL简介中已经对GL方法的使用做了详细的说明,此文则是对GL方法的一些简单应用实例。 2.绘制简单图形 基本参数变量如下所示: public int circleCount = 6; public int circleRadius = 3; public int triangleSize
阅读全文
摘要:1.前言 Unity GL类是Low-Level图像类,提供了最基本的图形画法,其与OpenGL的直接画法类似。但是与Graphics类相比,Graphics类更高效。 GL类一般不能再update以及start等脚本方法中调用(可以调用,但是不会显示)。因为在Unity脚本的生命周期中,当开始渲染
阅读全文
摘要:1.概述 在unity 网格系列的最后来处理一下UGUI的mesh问题。ugui所有的网格mesh默认为四边形,边长为1,即mesh顶点坐标为四个。由于所有的ui均从Graphic类衍生,所以只要重写虚方法OnPopulateMesh即可。OnPopulateMesh存在两个,入口参数不同,一个时V
阅读全文
摘要:1.概述 球体比较复杂,涉及到极点位置会出现聚集的问题,本文采用常规方法绘制球体,然后借鉴他人的方法,通过正八面体拆分的方法生成球体mesh。 2.常规方法 常规方法就是通过极坐标系,分别计算球体表面的坐标,然后依次生成三角形。问题在于当划分较细时,球体两端的网格会比较细,比较聚集。 2.1 基类
阅读全文
摘要:1.概述 本片转自如下 2.代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CreateIcosahedron : MonoBehaviour { publi
阅读全文
摘要:1.概述 本文跟多棱锥的生成一样,只是生成的网格,并未生成法线,发现生成可以参照cube法线生成方法。 2.代码 2.1 基类 using System.Collections; using System.Collections.Generic; using UnityEngine; [Requir
阅读全文
摘要:1.概述 本文提供一种多棱锥的生成方法,通过参数控制锥的棱数。但是因为公用顶点的问题,所以未进行法线设置,可根据cube方法设置法线。 2.代码 2.1 基类 using System.Collections; using System.Collections.Generic; using Unit
阅读全文
摘要:1.概述 Unity自带cube模型,但是此文实现,分基础版和完善版。基础版不进行顶点法线计算,完善版会进行法线计算,结果会跟自带cube比较接近。 2.基础版Cube 2.1 基类 using System.Collections; using System.Collections.Generic
阅读全文
摘要:概述 本文在上一篇平面圆形基础上生成平面环形。 代码 基类 using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(MeshFilter),type
阅读全文
摘要:概述 由于基础篇已经比较详细,此篇只贴代码。 平面圆形代码 圆形也是由三角形组成的,三角形个数越多则越园。 基类 using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireCompon
阅读全文
摘要:概述 本文用来实现一个平面plane,其与四顶点的四边形mesh相比,网格变多。 Mesh代码 基类 using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(ty
阅读全文
摘要:概述 本篇为Unity Mesh基础的第一篇,通过一个最基本的平面四边形网格来进行阐述。在此之前先对网格(mesh)做一个简介。网格为最基本的模型表达,通过点构成线,再由线构成三角形,最后由三角形构成面,然后通过材质来进行网格表面的表达,如阴影,贴图等。Unity除了ui的mesh,其他都需要Mes
阅读全文