在Bugly上恢复原生崩溃堆栈信息需要符号表文件,具体可以参考分析libunity.so Release崩溃。我们在升级2017之后发现引擎有些行为发生了变化,这里记录下。
阅读全文
最近在查一些渲染上的问题,发现RenderDoc这货非常好用,而且引擎原生支持用起来也很方便。
ps. 这个工具是从DX层去抓取真实绘制信息,和引擎内置的工具会有一定的区别。而且像纹理状态、寄存器变量甚至调试Shader上会方便非常多。
阅读全文
之前其实在C#反射——掀起Unity Editor面纱里提到过Profiler的增强;后来官方提供了更加方便的MemoryProfiler,上周末的时候顺手用类似的思路增加了diff功能并进行了一定的优化。原来那个ProfilerDiff就直接废弃,毕竟当时懒了没做序列化
ps. 本来我想直接用gulu大大的PA_ResourceTracker,不过仔细研究了下代码发现需要接入的东西比较多(很多数据信息是通过网络传输的),嵌入我们自己的项目不是特别方便。最后自己动手弄个山寨版,也就半个多小时搞定…
阅读全文
今天正好和朋友聊到嵌套Prefab这个话题,发现这个其实是一个很多项目都需要但是Unity并没有提供内置支持的功能。在过去的项目中我们也实践过不同的解决方案,也了解过其他团队的一些做法,在这里正好整理一下,供大家参考/吐槽。
其实还有一个原因是又好久没更新博客了…
阅读全文
虽然说UGUI已经开源,但是最核心的几个文件是c++实现的因此依然不可知。这几天好好的研究了下,整理出了一些自己的理解。这部分说实话是连蒙带猜出来的,如有理解不当的地方欢迎沟通交流。
ps. 后面的代码都以Unity 5.x为例分析。
阅读全文
最近读了利用GPU实现大规模动画角色的渲染有感,终于想起来把一个两年前的坑FFT Ocean Part 1给填啦(我又一次战胜了拖延症)。之前做的时候思路有点问题,只考虑了用Scale/Offset来序列帧的情况,搞的自己很繁琐;现在开阔脑洞直接用vertex ID就方便多了。
阅读全文
这其实是一个常见的问题:Unity中使用P/Invoke调用原生代码的时候如何更高效的传参数和获取返回值的问题。一般来说简单的直接写在函数声明里,遇到复杂的情况譬如变长、数组等情况我基本都是直接上JSON的。但是最近性能测试的时候发现这么写也是一个非常可观的消耗:
阅读全文
这两天在群里看到有人问过这个问题,也有朋友小窗问我:Unity中导出Gradle工程然后打包出来的apk会加载AssetBundle慢很多。
于是联想到了之前遇到的一个有意思的现象:我们的出包流程是在打包出来apk之后,利用apktool解包再进行加密和资源处理再打回去。但我发现这个步骤导致apk大小变化很多(有时变大有时变小,毫无规律),非常奇怪;但是解压出来的内容确实又是一样的。后来我仔细比对之后终于找到玄机:Streaming Assets下的东西默认是不压缩的。
阅读全文