2019年5月23日

UGUI源码之Graphic

摘要: Graphic是用来显示图像的一个抽象类,是MaskableGraphic的父类,而MaskableGraphic是Image、RawImage、Text的父类。 Graphic继承于UIBehaviour和ICanvasElement。 UIBehaviour是所有UI的父类,声明了Unity生命 阅读全文

posted @ 2019-05-23 21:20 pj2933 阅读(1055) 评论(0) 推荐(0) 编辑

2019年5月21日

UGUI源码之EventSystem

摘要: 今天研究下UGUI的源码,先从EventSystem入手。EventSystem是用来处理点击、键盘输入以及触摸等事件的。 1.BaseInputModule EventSystem开头声明了两个变量,系统的输入模块列表和当前输入模块 BaseInputModule是一个抽象类,PointerInp 阅读全文

posted @ 2019-05-21 16:34 pj2933 阅读(234) 评论(0) 推荐(0) 编辑

2019年5月16日

socket、http、udp、tcp的整理

摘要: 1.socket简介 游戏开发中最常用的便是socket,socket本质是api,是对tcp/ip的封装。tcp/ip协议族是一个网络通信模型以及一系列网络传输协议,为互联网的基础通信架构。 tcp/ip网络模型分为四层:应用层、传输层、网络层、网络接口层。下面的表格是tcp/ip模型和osi模型 阅读全文

posted @ 2019-05-16 00:43 pj2933 阅读(288) 评论(0) 推荐(0) 编辑

2019年5月3日

Lua表(table)的个人总结

摘要: 1.表的简介和构造 table是个很强大且神奇的东西,又可以作为数组和字典,又可以当作对象,设置module。它是由数组和哈希表结合的实现的。他的key可以是除nil以外任意类型的值,key为整数时,就可以当作一个数组了。 构造: mtable={} --创建一个空表 mtable[1]="Hell 阅读全文

posted @ 2019-05-03 16:27 pj2933 阅读(1381) 评论(0) 推荐(0) 编辑

2019年4月18日

接口与抽象类比较

摘要: 相同点: 1.不能被实例化 2.包含未实现的方法声明 3.派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员 不同点: 抽象类 接口 抽象基类可以定义字段、属性、方法实现。 接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 有构造方法 无构造方法 可以包含非抽象的普通方法 不可 阅读全文

posted @ 2019-04-18 19:17 pj2933 阅读(162) 评论(0) 推荐(0) 编辑

2019年4月11日

UGUI优化总结

摘要: 1.动静分离 canvas下元素变化时,会使整个canvas重新绘制。因此将ui经常改变和不怎么改变的部分分离,分别使用不同的canvas。 2.图集优化 不同界面的ui,可以打包成不同的图集,一些公用的资源也单独打成一个图集,减少batch。不同场景下的资源也打成不同图集,比如战斗场景和战斗外的场 阅读全文

posted @ 2019-04-11 23:51 pj2933 阅读(245) 评论(0) 推荐(0) 编辑

2019年3月21日

溶解shader

摘要: 玩神界原罪2,感觉人物被建筑遮挡时,建筑的“溶解”效果很有意思,想实现一下。然后发现连溶解都没实现过,emmmmm。。。。先来把溶解实现了~ 原理就是根据一张噪声图的值是否大于某个阈值,来判断是否丢弃像素值。然后阈值从0到1就可以让物体从有到无了。然后加了一条溶解的过渡带,为了显得不那么突兀。 改变阈值从0到1再从1到0,效果如下:代码如下:// Upgrade NOTE: replac... 阅读全文

posted @ 2019-03-21 15:01 pj2933 阅读(644) 评论(0) 推荐(0) 编辑

2019年2月12日

后处理之径向模糊

摘要: 游戏中为了突出画面震撼或者突出移动速度快时,可以用径向模糊来提升表现的效果。例图如下: 径向模糊的原理是取一个中心点,然后沿着中心点 像素点的方向选取几个点采样,然后该像素点输出这几个采样点的平均值。因此约靠近中心越清晰,越远则越模糊。画图工具里瞎比划一下。。。 代码里进行了一些优化,思路是将图像渲 阅读全文

posted @ 2019-02-12 18:30 pj2933 阅读(1455) 评论(0) 推荐(0) 编辑

2018年11月1日

描边shader(法线外拓)

摘要: 描边的思路是需要两个pass。第一个pass让顶点沿着法线方向延伸出去,使得模型变大一圈。第二个pass正常渲染,让正常渲染的模型挡在第一个pass之上,这样就会露出延伸出去的部分,延伸出去的就是我们要的描边了。代码实现如下: 效果如下: 法线外拓有些缺陷,在棱角分明的模型中表现较差,锐利的部分,描 阅读全文

posted @ 2018-11-01 23:01 pj2933 阅读(822) 评论(0) 推荐(0) 编辑

2018年9月7日

透视效果shader(边缘光)

摘要: 思路:渲染两次。 1.第一次渲染:利用Greater进行深度测试,当目标被遮挡时,用一个边缘光的效果显示。 2.第二次渲染:正常渲染。 边缘光的思路:观察方向和顶点法向量夹角越大,边缘光越明显。边缘光强度由公式rim=1-dot(view,normal)来表示。 代码实现: 阅读全文

posted @ 2018-09-07 16:07 pj2933 阅读(414) 评论(0) 推荐(0) 编辑

导航