摘要: 聊聊近况: 距离上一篇文章已经过了好久,主要原因是我懒了。公司项目也到了开始优化的阶段,上网找的资料,看过了就忘。还是想把它整理一下,写出来。其实我说的东西,网上都有,我只是搬运工而已。 贴图压缩: Android平台使用ETC1格式压缩。 目前主流的Android机型基本都支持ETC1格式压缩。但 阅读全文
posted @ 2016-05-13 16:35 Joe师傅 阅读(11912) 评论(3) 推荐(0) 编辑
摘要: 效果: 思路: 1.算出正确的uv去采样过滤图,上一篇文章说的很明白了。Shader实例:NGUI图集中的UISprite正确使用Shader的方法 2.用当前血量占总血量的百分比来设置shader中的变量,来控制血条的裁剪。 实际操作中,在shader中声明一个uniform float _Fac 阅读全文
posted @ 2016-05-13 16:25 Joe师傅 阅读(1265) 评论(0) 推荐(0) 编辑
摘要: 效果: 变灰,过滤,流光 都是UI上常用效果。 比如: 1.按钮禁用时,变灰。 2.一张Icon要应付圆形背景框,又要应付矩形背景框。就要使用过滤的方式来裁剪。 避免了美术提供两张icon的麻烦,又节省了内存。 3.流光,呃……,策划就是要,你能怎么办。 实践: NGUI把要用到的图片做成了图集,它 阅读全文
posted @ 2016-05-13 16:20 Joe师傅 阅读(5611) 评论(3) 推荐(1) 编辑
摘要: 效果: 序列帧图片网上随便找的,质量不是很好,重点不是它,不要在意。 思路: 1.之前都是在一张面片上直接映射一张纹理,IN.uv的范围是0~1 现在要映射一张纹理上的一小块区域,就要用这块区域的uv去采样后映射到面片。 所以:x方向,IN.uv.x/列数,范围变化到0~(1/列数) 同理:y方向, 阅读全文
posted @ 2016-05-13 16:10 Joe师傅 阅读(2779) 评论(0) 推荐(0) 编辑
摘要: 效果: 图左:一道金光闪过,瞬间灰飞烟灭 图右:燃烧效果,先过渡到黄色,然后渐渐过渡到黑色,最后消失殆尽。 这是游戏中常见的效果,各位可以想想自己玩过的游戏。 手头正在玩的,梦三国手游,死亡的时候就是溶解消失。 代码有注释: clip:如果输入向量中的任何元素小于0,则丢弃当前像素。 discard 阅读全文
posted @ 2016-05-13 16:08 Joe师傅 阅读(5021) 评论(0) 推荐(1) 编辑
摘要: 效果: 案例:新仙剑,王者之剑。 在切换场景的时候,就会有这样的全屏扭曲效果。 思路: 1.用GrabPass抓屏到一张纹理中。 2.进行扭曲,绘制到UGUI的Image上。 准备: 去官网下载Unity内置Shader,当前最新版本:builtin_shaders-5.3.1f1 http://u 阅读全文
posted @ 2016-05-13 16:06 Joe师傅 阅读(7582) 评论(1) 推荐(0) 编辑
摘要: 效果图: 1.边缘发光 思路:用视方向和法线方向点乘,模型越边缘的地方,它的法线和视方向越接近90度。点乘越接近0 那么用 1-减去上面点乘的结果,来作为颜色分量,来反映边缘颜色强弱。 2.描边(一) 思路:两次渲染,第一次渲染背面,剔除正面,把模型顶点沿法线方向扩伸一定距离(用来表现描边的粗细) 阅读全文
posted @ 2016-05-13 15:59 Joe师傅 阅读(38270) 评论(0) 推荐(0) 编辑
摘要: 准备: 1.一张背景图 2.一张流光图 3.一张过滤图 like this: 效果: 代码: 主要就是uv移动,颜色混合。 本文固定链接: http://www.shihuanjue.com/?p=266 转载请注明: 乔 2016年01月03日 于 是幻觉 发表 本文固定链接: http://ww 阅读全文
posted @ 2016-05-13 15:56 Joe师傅 阅读(2486) 评论(2) 推荐(0) 编辑
摘要: 准备: 1.一段小视频 2.一张电视机贴图 3.一张过滤图 效果: 让视频内容只在电视机屏幕区域显示 Shader代码:有注释 C#脚本代码:就是把视频内容传递给shader代码里面的uniform sampler2D _TVTex 不足: 以为这样就完美了吗? 不是,既然是旧电视,必然有那种,吱~ 阅读全文
posted @ 2016-05-13 15:43 Joe师傅 阅读(995) 评论(0) 推荐(0) 编辑
摘要: 什么情况下需要Lightmap? 移动平台上目前暂时还不能开实时光影效果,会卡成幻灯片。所以就需要将光影烘焙到贴图上。 什么情况下需要动态加载Lightmap? 1.当项目抛弃了Unity的多场景模式,也就是说整个项目只有一个scene,资源全部都是以AssetBundle的形式动态加载。 资源全部 阅读全文
posted @ 2016-05-13 15:38 Joe师傅 阅读(7571) 评论(0) 推荐(0) 编辑
摘要: 一份给策划最好的礼物!就是:Excel2Json2CSharp 策划配置Excel,动不动就要改数值啊,增加字段啊。 程序这边对应的解析类就得改动啊。整一个麻烦了得! 所以我就整理了这个Excel2Json2CSharp工具,让策划自个玩去了吧~! 为了Windows和Mac都能使用(亲测都可用), 阅读全文
posted @ 2016-05-13 15:35 Joe师傅 阅读(2834) 评论(1) 推荐(0) 编辑
摘要: 1.扇形和圆形 2.矩形和矩形 3.矩形和圆形 4.圆形和圆形 总结:其实碰撞检测这个话题深入下去还是挺复杂的,再给自己挖几个坑,以后再埋: 1.要是一个技能是运动的,那就必须每隔固定帧数进行算法检测,但是要是前一帧和后一帧这个空档时间里,恰好穿过了某个物体。 肉眼上可以明显看出是穿过去了,但是在逻 阅读全文
posted @ 2016-05-13 15:19 Joe师傅 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 游戏中的每个3D对象在世界坐标系里都有坐标。 技能的作用范围可能是圆形,矩形,扇形,三角形等。 那可不可以直接拿 “点”直接与这些形状进行碰撞检测呢! 如果你要的效果不是那么精确,可以允许一点点瑕疵,那么是可行的。 那么这个瑕疵是什么呢? 因为3D物体都有体积,当你肉眼都能看到你的3D模型已经在范围 阅读全文
posted @ 2016-05-13 15:17 Joe师傅 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 先看下效果 你一定会说,然并卵! 没错,这里只是一个最简单的例子,unity与android activity 互相传参数。 玩过手游的都知道,在你要为你心爱的游戏角色准备花钱买钻石,点击购买的时候,会弹出一个风格可能和游戏完全不符的界面,没错,那就是渠道sdk的支付界面了。 比如: 其实,在游戏上 阅读全文
posted @ 2016-05-13 15:12 Joe师傅 阅读(7789) 评论(0) 推荐(0) 编辑
摘要: 大白话说一下几个点: 通俗的来说,其实就是以一个规则来 从A点走到B点。 怎么来判断我们走的格子是一个合适的格子? 就是靠一个规则来计算,这个规则就是估价函数。 估价函数: 常用:曼哈顿算法 F = G + H G:表示从起点 A 移动到网格上指定方格的移动耗费 (可沿斜方向移动). H:表示从指定 阅读全文
posted @ 2016-05-13 11:42 Joe师傅 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 在做客户端与服务器通信之前,先约定消息包的格式,例如:整个包的长度+消息类型+消息体数据内容 为什么发送的每条消息数据前面要加个长度的字段? TCP的协议中,包的接收顺序就是包发送时候的顺序, 你收到的时候先将长度这个字段解析出来,然后读入接下来的data内容, 粘包:如果data内容过长(大于这个 阅读全文
posted @ 2016-05-13 11:39 Joe师傅 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 数据驱动编程,之前听大神说过这个词,当时不以为然。如今在工作项目中,切身体会了,才真正感受到了这个词背后的一点点儿思想。 http://www.cnblogs.com/tadi314/archive/2010/03/11/1683795.html 这篇文章与我产生了很多共鸣。 策划喜欢用Excel表 阅读全文
posted @ 2016-05-13 11:38 Joe师傅 阅读(1022) 评论(0) 推荐(0) 编辑
摘要: 在游戏开发中,AI是个永恒不变的话题,如果你要的AI只是很简单的一个逻辑 那么有限状态机是一个很好的解决方案,尽管在实际开发中,AI的设计并不是一个简单的逻辑, 如果用有限状态机,维护起来会非常麻烦,但还是有必要记一笔。 为什么说维护起来很麻烦? 画一个图就知道了。 在状态不是很多的时候,要维护的状 阅读全文
posted @ 2016-05-13 11:37 Joe师傅 阅读(464) 评论(0) 推荐(0) 编辑
摘要: Unity自己有log系统,为什么要自己封装一个 1.不好用,只能在pc上记录log文件,移动平台是没有的 2.在开发时期的log,不想在正式版里面出现。没有一个统一的开关来控制是不是要显示log,要显示什么类型的log 那么怎么做? 我的思路是:Unity里面的所有的log,都会被 Applica 阅读全文
posted @ 2016-05-13 11:33 Joe师傅 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 之前说了 “Unity5.x版本AssetBundle打包研究”,没看过的请先看一下:http://www.shihuanjue.com/?p=57 再来看本文,有一定的连接性。 先梳理一下思路: 要加载一个资源A,必须先去加载它的所有依赖资源 要知道这个资源A依赖了哪些资源,必须先去加载Asset 阅读全文
posted @ 2016-05-13 11:30 Joe师傅 阅读(602) 评论(0) 推荐(0) 编辑