前文说过使用符号表可以解析 libunity 等 so 库的调用堆栈,但对于开启引擎代码裁剪的 IL2CPP 正式包来说,符号表的 Build Id 与 apk 内的 so 库是不一致的。 示例 以下是某 Unity 游戏的 CRASH 日志,可见其打包版本为 Unity 2020.3.12f1(b3b2c6……

想细细研究下 native engine object,发现之前理解有误,不过 Unity 到最后也没说清楚,所以标题从探究换成了碎碎念。 前排提醒:本文主要内容为个人思考,未精细排版,且少图多字,观感不佳。 如果你是搜索引擎过来的,建议直接跳转到重新理解原生引擎对象标题处 起因 在 RenderTextur……

线上崩溃统计日志中经常出现一个空指针崩溃问题,关键词为 signal 11(SIGSEGV),code 1(SEGV_MAPERR),fault addr 00000000,调用链指向 libunity.so。 问题 虽然崩溃时调用链指向了 libunity.so,但具体执行了啥,调用的是哪个方法,根本无从下……

最近在搞一个帧同步的 Demo,涉及到网络消息转发。之前内网版 Demo 使用 String + Protobuf 二次封装发送消息,而公网带宽和流量都要钱,有必要压缩下。 LZMA、GZip 与 LZF 三种压缩算法的优缺点: LZMA:7z 默认的压缩算法,压缩率较高,但是时间很长; GZip:压缩率较 ……

偶然遇到的 Bug,和 Android 同学对完接口后,在进行某个操作时,总会触发安卓系统 ANR 弹窗:“xxx无响应”,而后经常出现 Unity Crash。 ANR 是啥 ANR 是一种 Android 系统中的错误类型,当应用程序的界面线程处于阻塞状态的时间过长,将会触发此错误,并出现 ANR 对话框……

挺常见的需求,但找到的 Shader 一般只考虑了 1:1 矩形,这些 Shader 用在头像等正方形图像处没问题,但用做长方形图像时会出现圆角变形。 为什么要用 Shader 如果使用 Mask,会有额外的 DrawCall。 Shader 改造 搜到的 Shader 都大同小异,随意找一个来修改。只讨论修……

接前文,为了实现一个较为完整的播放器,需要支持从文件管理器中打开文件,而这一过程是通过接收隐式 intent 实现的。我们需要让 Unity 接收该隐式 intent。 声明 intent-filter 文件管理器打开一个应用时,会发送一个隐式 intent,系统会在应用的 AndroidManifest 中……

手里有几个低成本的 CardBoard VR 塑料盒子,用来在手机上体验 VR 内容。由于本人拥有数个 NAS ,因此迫切需要一种方法播放上面的内容。 起因 从箱子角落翻出了几个叫做 xx 魔镜、xx VR 的 VR 盒子,他们都是 CardBoard 类型的 VR 盒子。CardBoard 是一种低成本的 ……

与安卓接口对接时,常使用UnityPlayer.UnitySendMessage给 Unity 发送一些消息。如果 App 进入后台,安卓端代码即使正常执行,Unity 方法也不会被调用。 问题描述 当应用进入后台一段时间后,即使安卓端 Java 代码正常执行,但其调用的UnityPlayer.UnitySe……

在 Unity 2018.4 及以下版本中,偶现在悬浮状态(hover)时隐藏并再次显示该 UI 后,高亮状态不重置的问题,其中以 Button 居多。 问题描述 UGUI 按钮 A,点击时隐藏自身(SetActive(false))。之后通过其他方式将其开启,发现 A 仍然保持高亮状态,并没有重置。 此情况……