201706-08 UGUI研究院之新手引导事件上下分离(二十七) 新手引导最好和业务逻辑拆开,也就是做新手引导的程序员不能去影响到下面做系统的人。 1.开发一个新手引导编辑器,让策划配出每个引导的点击区域。 2.在Shader中扣一个洞。(圆形或者矩形)用来做显示的点击区域。 3.新手引导的进度需要与服务器进行同步,为了不影响到下面的业务逻辑,在.... Read More >
201705-30 Unity3D研究院编辑器之ManagedStaticReferences()静态引用(二十九) Unity的Profiler可以看出来内存,但是遇到ManagedStaticReferences()估计大家都跪了。因为这个资源被静态引用了,然后我们并不知道它被哪里静态引用了。 我想了个办法,可以通过反射来查询它。先讲一下原理 1.反射dll 2.遍历所有的.cs 取出所有带.... Read More >
201705-07 Unity3D研究院编辑器之EditorOnly(二十八) Unity自带了一个EditorOnly的Tag。意思就是标记过这个游戏对象,只在Editor下生效不会被最终打进包里。这个功能其实很必要,但是可能被很多团队都遗忘了。 例如:美术做的场景需要一些摄像机、角色、特效来进行辅助参照。这些东西单纯只是用来参照的,并不希望打进游戏包中。但是开发阶段又.... Read More >
201704-28 UGUI研究院之RawImage显示多边形或圆形贴图(二十六) 项目中可能有些icon.有的地方显示矩形,有的地方又要显示圆形。 网上我看有人用shader实现了,我觉得使用起来不太方便。后来参考了一个工程 https://bitbucket.org/ddreaper/unity-ui-extensions 把sp.... Read More >
201704-19 Unity3D研究院编辑器之[System.Serializable]数组List对象添加默认值(二十七) [System.Serializable]对象放在数组中,默认在Inspector面板上Array的数量是0,如果在这里修改数量,新加的元素在Inspector面板上它是没有默认值的。 比如:我有一个很轻量级的控件,代码中需要序列化List数据,没必要在写个类OnInspectorGUI中自定.... Read More >
201704-15 Unity3D研究院之Json序列化字典 Unity自己的json序列化是不支持字典格式的。无意间发现了一个全新的json .net库,功能很强大,还支持序列化字典推荐给大家。 http://www.newtonsoft.com/json 点击下载,zip. 解压后,把bin/net20/Newtonsoft.Json.dll .... Read More >
201704-14 Unity3D研究院编辑器之Mac的Profiler窗口固定不可被失去焦点(二十六) Window是没这问题的,然而Mac上所有Unity自带的窗口基本就是这样。比如Profiler窗口,随便在Unity主窗口中点击一下, Unity主界面就把Profiler窗口盖住了。。 很蛋疼啊。 其实Unity的窗口是可以设置焦点类型的。只是系统窗口,c#是访问不到的,不要紧我们可以用强.... Read More >
201704-10 [投稿]Unity3D游戏优化之头顶UI 3D角色头顶会显示文字、图标、血条等,它会跟随角色移动,始终朝向相机,可能还有定制的缩放,一般情况下会考虑用UGUI来做,但完成后发现这样做的效率很低,而且遮挡正确性也保证不了。 效率低因为: 1,渲染上每块文字、图片都要用一次drawcall,图片文字又可能是交替出现的没法利用dyna.... Read More >
201704-01 Unity3D研究院之Unity5.6的Lz4打ipa、apk包(九十二) Unity5.6今天发布了。支持打包lz4压缩包,支持ios和android。 这个lz4不是assetbundle,而是压缩预制在游戏包内的资源。比如场景依赖的资源,或者Resources目录下的资源,Prefab关联的资源等等。 压缩资源的描述如下 Compressed data f.... Read More >
201703-31 UGUI研究院之在UI上使用RenderTexture显示模型+AlphaBlend特效(二十五) 在UI上显示模型无非就是2种。 1.在两个UI摄像机中夹一层3d摄像机,利用摄像机的Viewport Rect属性对模型进行裁切。 2.使用RenderTexture渲染在RawImage后显示在UI上。 我上一个项目就是采取第一种方法,用起来很不舒服。因为有很多效果都做不了,比如.... Read More >
201703-24 UGUI研究院之比较大的图片的压缩(二十四) 好久没写文章了,最近太累了。。 使用UGUI开发界面,一般比较小的图片会设置一个tag,让它打进图集。其实还有很多大的图片,比如logo、头像、图标、关卡图、等 。 宽高各一方大于256 或者 512的图片。 这类大的图片不太适合放在图集中,因为他们会把图集撑的很大,可是如果从图集中拿出.... Read More >
201702-12 UGUI研究院之有效解决RaycastTarget勾选过多的烦恼(二十三) 看过UGUI源码的朋友一定都知道,UI事件会在EventSystem在Update的Process触发。UGUI会遍历屏幕中所有RaycastTarget是true的UI,接着就会发射线,并且排序找到玩家最先触发的那个UI,在抛出事件给逻辑层去响应。 团队多人在开发游戏界面,很多时候都是复制黏.... Read More >
201612-26 Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一) 网上已经有类似的解决方案,原理就是在做一张通道图,然后在shader里混合。代价就是需要做个shader在做一个脚本代替Image 和RawImage。 今天我发现其实unity自己已经做了这个功能了,不用写shader,也不用替换脚本,原生支持就是方便啊。 先看看我的图集,ETC1 压.... Read More >