202006-07 Unity3D研究院之静态合并贴图(一百一十六) 最近研究了一下Texture2D.PackTextures方法。它可以在运行时或者编辑时对贴图进行合并。运行时它不支持任意贴图格式的合并,比如现在主流的ASTC,它会合并成RGBA32格式。而且无法指定贴图合并到大图具体某个位置上。 动态合并贴图的方法可以参考我之前的文章,这篇主要考虑静态合并.... Read More >
201911-09 Unity3D研究院编辑器之修改贴图片默认导入规则(三十五) 贴图导入unity后会自动设置成压缩格式,它会先判断贴图是否有透明通道。 Android:不带透明通道压缩成ETC1,带透明通道压缩成ETC2,不被4整除fall back到RGBA32 IOS: 不带透明通道压缩成RGB PVRTC,带透明通道压缩成RGBA PVRTC ,不是2的整数.... Read More >
201908-17 Unity3D研究院编辑器之合并mesh引发的矩阵推导运算(三十四) 合并mesh的功能比较常见,可以运行时合也可以编辑模式下提前合并,但是至少需要注意两点。 1.考虑lightmap,合并mesh以后会将lightmap的信息写入uv2,如果有多张lightmap需要传入正确的index,所以参与合批的mesh需要保证处于同一index的lightmap中。 .... Read More >
201904-27 Unity3D研究院编辑器之批处理图片添加抖动(三十三) 前几天公司有个项目,由于美术做了很多背景图并且还大量的使用了渐变过度,导致压缩图片后效果非常差,而且换成RGBA16效果也不理想,如果用RGBA32那就太浪费效率了。后来发现TexturePacker具有添加图片抖动的方式,由于项目组使用了UGUI手动一个个设置这太麻烦了,所以就做了个工具。如下图所.... Read More >
201904-16 Unity3D研究院编辑器之Mac编译调试外部引用DLL(三十二) 最近在MAC下需要频繁构建DLL,并且还需要调试,写篇文章记录一下过程,如图所示,先创建一个Library工程。 右键EditReference把UnityEngine.DLL引入进来,并且取消选择Local Copy。不然后面会把UnityEngine.dll也拷.... Read More >
201902-14 Unity3D研究院编辑器之监听Unity编辑器关闭事件(三十一) 以前就想要这个功能,想让美术或者策划在关闭unity的时候做一些检查的操作。 [crayon-673ee0e792a9a321065311/] .... Read More >
201809-22 Unity3D研究院编辑器之获取粒子准确数量(三十) 最近在做一些辅助工具帮助特效师在开发特效的时候可以知道当前已经用了多少的粒子数,然而Unity也提供了这样的预览面板,但是看起来特别不方便。关键是很多特效都是粒子+mesh结合使用的。而且我又发现particleCount api提供获取粒子数量并不是很准,不能及时获取当前的粒子数量。 .... 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-19 Unity3D研究院编辑器之[System.Serializable]数组List对象添加默认值(二十七) [System.Serializable]对象放在数组中,默认在Inspector面板上Array的数量是0,如果在这里修改数量,新加的元素在Inspector面板上它是没有默认值的。 比如:我有一个很轻量级的控件,代码中需要序列化List数据,没必要在写个类OnInspectorGUI中自定.... Read More >
201704-14 Unity3D研究院编辑器之Mac的Profiler窗口固定不可被失去焦点(二十六) Window是没这问题的,然而Mac上所有Unity自带的窗口基本就是这样。比如Profiler窗口,随便在Unity主窗口中点击一下, Unity主界面就把Profiler窗口盖住了。。 很蛋疼啊。 其实Unity的窗口是可以设置焦点类型的。只是系统窗口,c#是访问不到的,不要紧我们可以用强.... Read More >
201610-29 Unity3D研究院编辑器之脚本获取资源内存和硬盘大小(二十五) 内存 使用Profiler可以查看某个资源的内存占用情况,但是必须启动游戏,并且待查看的资源已经载入游戏中。我希望的是不启动游戏,也能看到它的内存好做统计。 硬盘 由于unity中的资源压缩格式记录在meta中所以,在文件夹中看到的资源大小是不正确的。打开unity需要选择一个资源.... Read More >
201603-26 Unity3D研究院编辑器之不影响原有布局拓展Inspector(二十四) 今天无意间发现了一篇好文章,也让我解决了一个很久都没解决的难题。问题是这样的,假如我想去拓展Unity自带的inspector但是并不想影响原有布局。 比如下面这段代码: [crayon-673ee0e7981e3821100418/] 我的本意是想在Rect Transform面板的下面去添加.... Read More >