P/Invoke调用优化

这其实是一个常见的问题:Unity中使用P/Invoke调用原生代码的时候如何更高效的传参数和获取返回值的问题。一般来说简单的直接写在函数声明里,遇到复杂的情况譬如变长、数组等情况我基本都是直接上JSON的。但是最近性能测试的时候发现这么写也是一个非常可观的消耗:     阅读全文
Kanglai Qian's avatar
Kanglai Qian 7月 20, 2017

Android下Streaming Assets特殊姿势

这两天在群里看到有人问过这个问题,也有朋友小窗问我:Unity中导出Gradle工程然后打包出来的apk会加载AssetBundle慢很多。 于是联想到了之前遇到的一个有意思的现象:我们的出包流程是在打包出来apk之后,利用apktool解包再进行加密和资源处理再打回去。但我发现这个步骤导致apk大小变化很多(有时变大有时变小,毫无规律),非常奇怪;但是解压出来的内容确实又是一样的。后来我仔细比对之后终于找到玄机:Streaming Assets下的东西默认是不压缩的。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 7月 20, 2017

Graphics Performance Analyzer 安卓

最近倒腾了很久新的抓包工具:     阅读全文
Kanglai Qian's avatar
Kanglai Qian 1月 08, 2017

Adreno Profiler再次修改

记录用…之前在Customized Adreno Profiler里修改过dll来修BUG…最近又捡起这个工具(我下的最新版本是4.0.5511.5192),修了一个崩溃错误     阅读全文
Kanglai Qian's avatar
Kanglai Qian 12月 01, 2016

GLES2/3下LOD问题

上周有半天在调整shader fallback,主要测试了下texCUBElod和tex2Dlod在GLES 2/3下是否能正常表现。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 11月 28, 2016

Android 7升级须知

最近守护要上GP,G家要求最好支持Android 24的targetSDK。然后硬生生周末被坑了两天…主要有两个问题需要强烈注意!     阅读全文
Kanglai Qian's avatar
Kanglai Qian 11月 14, 2016

Android下利用Hook实现mono dll加密

Unity的代码加密是一个有点麻烦的事情,相对iOS的IL2CPP,安卓里直接存放的dll很容易被ILSpy这种工具打开。网上有一些资料,如Unity3D研究院之Android加密DLL与破解DLL .SO,常见的思路都是修改mono源代码后重新编译;但是这样有一个麻烦的地方在于每次升级Unity版本之后都需要重新编译对应版本的libmono.so出来…     阅读全文
Kanglai Qian's avatar
Kanglai Qian 11月 12, 2016

分析libunity.so Release崩溃

最近一直在和Crash做斗争,一开始用了Bugsnag相当不错,后来经朋友推荐转用腾讯的Bugly,后台查询简直6。     阅读全文
Kanglai Qian's avatar
Kanglai Qian 12月 25, 2015

泰坦黎明效果分析一二

之前在Adreno Profiler分析任意安卓游戏特效+抓取资源中提过,对泰坦黎明的效果很感兴趣。现在终于等到安卓版本了,分析了一下它的几个效果,感觉有不少收获:     阅读全文
Kanglai Qian's avatar
Kanglai Qian 9月 04, 2015

Customized Adreno Profiler

Recently I found an interesting bug with Adreno Profiler: this cannot work correctly with glVertexAttribPointer(indx=2, size=4, type=GL_HALF_FLOAT_OES, normalized=False, stride=32, ptr=0xC). For example, texcoords in half type are presented as strange numbers:     阅读全文
Kanglai Qian's avatar
Kanglai Qian 9月 02, 2015