2019
08-31
08-31
Unity3D研究院之UGUI软裁切(一百零八)
前段时间用Stencil实现了一套裁切,但是Stencil原理只能是裁或者不裁,这样是无法实现像NGUI这样的软裁切功能。之前的笔记在这里 https://www.xuanyusong.com/archives/4562 如下图所示,我们用Rect2DMask组件同时软裁切3D模型和Image。 裁切最容易出.... Read More >
专注移动互联网,专注Unity3D游戏开发
前段时间用Stencil实现了一套裁切,但是Stencil原理只能是裁或者不裁,这样是无法实现像NGUI这样的软裁切功能。之前的笔记在这里 https://www.xuanyusong.com/archives/4562 如下图所示,我们用Rect2DMask组件同时软裁切3D模型和Image。 裁切最容易出.... Read More >
最近我在UWA的学堂写了两篇收费文章,都是介绍UGUI的。 从2014年UGUI刚出来的时候我就毫不犹豫的放弃的NGUI,原因是UGUI有两方面是彻底碾压NGUI的 1.开发的时候不用考虑图集规划,(NGUI在后期调整图集,每个界面都要改一遍真是痛苦) 2.UGUI在C++里合并的Mesh,并且有多.... Read More >
前几天公司有个项目,由于美术做了很多背景图并且还大量的使用了渐变过度,导致压缩图片后效果非常差,而且换成RGBA16效果也不理想,如果用RGBA32那就太浪费效率了。后来发现TexturePacker具有添加图片抖动的方式,由于项目组使用了UGUI手动一个个设置这太麻烦了,所以就做了个工具。如下图所.... Read More >
UGUI的标志性函数Canvas.SendWillRenderCanvas,我们只知道网格进行了重建,但是并不知道是哪个Canvas,由于哪个UI元素引起了Canvas网格的重建。比如,修改RectTransform的属性、Text文本内容、更换Sprite、颜色、都会引起网格重建,通过观察UGUI.... Read More >
前两个项目我一直用的是 UGUI研究院之Mask裁切UI粒子特效或者3D模型(十七) 做的裁切,但是实际开发中由循环列表中需要动态创建元素,每个新创建的元素都需要根据MaskRect的区域重新给Shader中指定,这个小小的隐患总是引起BUG。最近在做技术储备看到了Stencil一个东西,发现可以很.... Read More >
最近把游戏的iPhoneX自适应做完了,并且已经过了审。我的做法是每个界面的最上层都是一个横纵Stretch自动拉伸的,检测当发现是iPhoneX时,打开界面代码中自动设置 Left Top Right Bottom 为44. 由于我们用的是Unity5.5.4,并没有方法来判断是否是iPhoneX.... Read More >
UGUI效率不高,界面稍微复杂一点就会出现打开慢的情况,至于为什么效率不高,Unity官网或者UWA的教程都已经写的很全面了。本篇文章我不站在效率优化的角度来讲(快成型的项目其实有很度无奈),从UI缓存的角度来讲,利用缓存UI的方式来让UI打开的速度更快。灵感来自我的上一篇文章 http://12.... Read More >
好久没有写文章,这段时间恶心与快乐并行这,总之希望大伙不要忘记我,今天得空我来更新一篇最近的心得。 Prefab in Prefab的需求太多了(据可靠消息unity2018官方会支持这个功能),以前我也写过一个解决方案,但是后来自己都不用了。今天我写的这篇是自己使用过一段时间,并且觉得还不错的方法.... Read More >
新手引导最好和业务逻辑拆开,也就是做新手引导的程序员不能去影响到下面做系统的人。 1.开发一个新手引导编辑器,让策划配出每个引导的点击区域。 2.在Shader中扣一个洞。(圆形或者矩形)用来做显示的点击区域。 3.新手引导的进度需要与服务器进行同步,为了不影响到下面的业务逻辑,在最顶层将UI事件拦.... Read More >
项目中可能有些icon.有的地方显示矩形,有的地方又要显示圆形。 网上我看有人用shader实现了,我觉得使用起来不太方便。后来参考了一个工程 https://bitbucket.org/ddreaper/unity-ui-extensions 把sprite或者texture拽上去。.... Read More >
3D角色头顶会显示文字、图标、血条等,它会跟随角色移动,始终朝向相机,可能还有定制的缩放,一般情况下会考虑用UGUI来做,但完成后发现这样做的效率很低,而且遮挡正确性也保证不了。 效率低因为: 1,渲染上每块文字、图片都要用一次drawcall,图片文字又可能是交替出现的没法利用dynamic ba.... Read More >
在UI上显示模型无非就是2种。 1.在两个UI摄像机中夹一层3d摄像机,利用摄像机的Viewport Rect属性对模型进行裁切。 2.使用RenderTexture渲染在RawImage后显示在UI上。 我上一个项目就是采取第一种方法,用起来很不舒服。因为有很多效果都做不了,比如就是UI上盖模型,.... Read More >