201612-26 Unity3D研究院之UGUI安卓自动ETC1通道分离(九十一) 网上已经有类似的解决方案,原理就是在做一张通道图,然后在shader里混合。代价就是需要做个shader在做一个脚本代替Image 和RawImage。 今天我发现其实unity自己已经做了这个功能了,不用写shader,也不用替换脚本,原生支持就是方便啊。 先看看我的图集,ETC1 压.... Read More >
201612-14 UGUI研究院之UI粒子特效自适应缩放(二十二) 我们UI自适应采用的是Canvas Scaler 设置 Expand模式。 那么UI可以很好的自适应屏幕,可是粒子特效就会出问题所以写下了这个脚本来自适应UI的粒子特效。 比如技能图标的特效光圈。 当屏幕缩放后,UI变小了,可是特效出问题了。 测.... Read More >
201610-29 Unity3D研究院编辑器之脚本获取资源内存和硬盘大小(二十五) 内存 使用Profiler可以查看某个资源的内存占用情况,但是必须启动游戏,并且待查看的资源已经载入游戏中。我希望的是不启动游戏,也能看到它的内存好做统计。 硬盘 由于unity中的资源压缩格式记录在meta中所以,在文件夹中看到的资源大小是不正确的。打开unity需要选择一个资源.... Read More >
201610-26 UGUI研究院之Text字体花屏(二十二) 今天我同事说在老项目用的是unity4.7.2打包发布韩文和泰文,偶尔会出现字体花屏的问题,但是中文是好的。(我也不知道怎么解释,只能靠猜吧)我们用的TTF动态字体,Text每次赋值的时候Unity会生成贴图,以及保存每个字的UV信息,那么显示字体的时候根据UV信息去生成的贴图里取最终渲染在屏幕上。.... Read More >
201609-05 Unity3D研究院之将UI的点击事件渗透下去(九十) 处理UI还有3D模型的点击推荐使用UGUI的这套事件系统,因为使用起来比较简洁,不需要自己用代码来发送射线,并且可以很好的处理同时点击UI和3D模型上。 1.给3D摄像机挂一个Physics Raycaster组件。Event Mask过滤掉UI. 2.用unity自带的Event Tr.... Read More >
201608-18 Unity3D研究院之限制RectTransform下某个属性不可被修改 如图所示,让RectTransform下某些属性不可以在Inspector面板上修改。 DrivenTransformProperties这个结构体你可以|符号 设置你希望禁掉的属性。 [crayon-673ee98467542251476723/] .... Read More >
201608-17 Unity3D研究院之ContentSizeFitter同步立即响应回调 ContentSizeFitter使用Preferred Size来设置RectTransform不能立即生效,必须要等一帧,也可以利用OnRectTransformDimensionsChange的回调方法。 但是这么做还是很恶心,最好还是能同步的计算出它的区域,一般我们可能会横向纵向的.... Read More >
201608-02 Unity3D研究院之Prefab不挂脚本保存数据 今天和同事一起发现了一个新科技,我们想在Editor下不给Prefab挂脚本,但是又想保存一些信息到Prefab上。 通过AssetImporter可以把数据保存在userData上,它是get set属性。 [crayon-673ee984693ee351625073/] 这样最终数据会.... Read More >
201607-20 Unity3D研究院之获取BoxCollider八个点的世界坐标 我们想把场景中的BoxCollider的坐标点导出出来让服务器也能用。虽然BoxCollider自身的大小可以获取出来,但是如果有父对象,并且有坐标的变化那算起来就比较麻烦了。还好unity提供了一个方法,真的很便捷。如下图所示,我用了8个标记点来标记获取到的boxcollider的坐标。旋转、缩放.... Read More >
201607-13 Unity3D研究院之Inspector面板枚举的别名与排序(八十九) 虽然mono是支持unicode的。可以在枚举里写中文,但是我还是觉得写英文好一些。可是在编辑器上策划是希望看到的是中文的,还有就是枚举的展示排序功能,策划在编辑的时候为了方便希望把常用的枚举排上前面。 把如下代码放到你的工程里就可以直接用了。 [crayon-673ee9846bc3973.... Read More >
201606-29 Unity3D研究院之查找资源被哪里引用了 Unity提供了一个方法 AssetDatabase.GetDependencies(),但是它只能查找这个资源引用了那些资源。 但是我想要的是查找某个资源被那些资源引用了,这是两种相反的查找公式。 其实网上也有很多这样的插件了,似乎代码量都太多了。昨天晚上加班时脑洞打开,想到了一个简单的方法。通过.... Read More >
201606-06 Unity3D研究院之限制某些脚本不能随便在Editor模式下绑定 Unity中,只要继承MonoBehaviour的脚本都可以任意挂在gameObject上。但是有些脚本可能我并不希望在Editor模式下任意被绑定,或者我只希望某些特定的gameObject才能绑定一些脚本。 编辑模式下添加脚本一共有两种方法, 1、使用鼠标拖拽到某个gameObjec.... Read More >
201605-31 Unity3D研究院之meta文件里timeCreated变化导致SVN改变 Unity5的meta文件格式中增加了一项timeCreated 一般也没啥问题。但是如果我想用代码去生成一些文件,为了避免删除的情况,肯定是先清空文件夹下的所有文件然后在生成。 这样就出现个问题。因为把文件夹清空了。所以重新生成文件以后meta里的timeCreated就变化了。。这个太蛋疼.... Read More >