2019
01-18
01-18
UGUI研究院之找到具体某个引起了网格重建的UI元素(三十二)
UGUI的标志性函数Canvas.SendWillRenderCanvas,我们只知道网格进行了重建,但是并不知道是哪个Canvas,由于哪个UI元素引起了Canvas网格的重建。比如,修改RectTransform的属性、Text文本内容、更换Sprite、颜色、都会引起网格重建,通过观察UGUI.... Read More >
专注移动互联网,专注Unity3D游戏开发
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 >
在UI上显示模型无非就是2种。 1.在两个UI摄像机中夹一层3d摄像机,利用摄像机的Viewport Rect属性对模型进行裁切。 2.使用RenderTexture渲染在RawImage后显示在UI上。 我上一个项目就是采取第一种方法,用起来很不舒服。因为有很多效果都做不了,比如就是UI上盖模型,.... Read More >
好久没写文章了,最近太累了。。 使用UGUI开发界面,一般比较小的图片会设置一个tag,让它打进图集。其实还有很多大的图片,比如logo、头像、图标、关卡图、等 。 宽高各一方大于256 或者 512的图片。 这类大的图片不太适合放在图集中,因为他们会把图集撑的很大,可是如果从图集中拿出来,又没办法.... Read More >
看过UGUI源码的朋友一定都知道,UI事件会在EventSystem在Update的Process触发。UGUI会遍历屏幕中所有RaycastTarget是true的UI,接着就会发射线,并且排序找到玩家最先触发的那个UI,在抛出事件给逻辑层去响应。 团队多人在开发游戏界面,很多时候都是复制黏贴,比.... Read More >
我们UI自适应采用的是Canvas Scaler 设置 Expand模式。 那么UI可以很好的自适应屏幕,可是粒子特效就会出问题所以写下了这个脚本来自适应UI的粒子特效。 比如技能图标的特效光圈。 当屏幕缩放后,UI变小了,可是特效出问题了。 测试环境unity5.3.5 代码如下所示.... Read More >
今天我同事说在老项目用的是unity4.7.2打包发布韩文和泰文,偶尔会出现字体花屏的问题,但是中文是好的。(我也不知道怎么解释,只能靠猜吧)我们用的TTF动态字体,Text每次赋值的时候Unity会生成贴图,以及保存每个字的UV信息,那么显示字体的时候根据UV信息去生成的贴图里取最终渲染在屏幕上。.... Read More >
最近在做Unity基于UGUI的摇杆,发现了一种非常简单并且巧妙的方法,原文在这里, 不过要翻墙!!http://godstamps.blogspot.tw/2015/07/unity-ugui-scrollrect.html 它的原理就是利用ScrollRect来限制摇块的摇动区域,但是Scrol.... Read More >
Unity新的消息系统已经完全取代了之前的sendMessage。总体来说这玩意没什么大用,因为C#的 代理事件委托完全能更好的替代他。只是UGUI中大量的在使用新的消息系统。运行时怎么给UI添加事件,大家可以看我之前的文章 UGUI研究院之控件以及按钮的监听事件系统(五) 如下图所示,这里我就先不.... Read More >
先去unity官网上把对应unity版本的UI着色器都下载下来。然后对其进行一番简单的修改,/--add--之间的内容就是我添加的。 然后在创建一个材质把这个Shader挂上去。 看一下效果吧。 如果运行时想改的话就封装一个方法来动态的更换材质即可,欢迎大家测试看看效率如何。 参考:h.... Read More >
刚好前几天有人问我这个问题,再加上新项目也可能用,所以这两天就研究了一下。其实如果粒子特效 和3D模型 都用RenderTexture来做的话就不会有裁切的问题,但是粒子特效用RenderTexture来做会有显示的问题,所以还是得用摄像机。废话不多说了,进入正题。 原理就是把Mask的裁切区域传给.... Read More >
这是我一个同事发现的方法, 首先为我的同事 - “进进” 同学点个赞! 如下图所示,将Image Type设置成Tiled来做拉伸时, unity会自动复制出很多三角形和顶点来。 试想一下如果你的原图很小,但是拉伸的面积又很大, 那么三角形顶点数量将非常恐怖。。 我们可以用RawIma.... Read More >