Unity嵌入安卓工程黑屏问题

有只小耗子 / 2024-08-28 / 原文

最近遇到了个很怪异的问题:

  Unity Adroid嵌入其它工程开启unity,闪过logo后黑屏持续10多秒。

大致经过:

  Unity导出Android Studio工程,并将导出的unityLibrary嵌入其它已经做好的AndroidStudio工程,直接从Unity导出的Android Studio工程直接连接手机调试就不会出现卡顿现象,所以就针对启动unityLibrary的官方模板launcher找原因。对比了launcher的build.gradle与要嵌入的项目的build.gradle文件进行对比,终于发现了重点配置内容 android ==> aaptOptions 里面的 noCompress 项所致。

结论:

  如果发现闪屏过后黑屏很久,或加载/读取Resources资源,StreamingAssets资源卡顿严重,并且控制台什么错误都没有的话。

可以考虑下所嵌入的安卓工程里面的build.gradle ==> android ==> aaptOptions ==> noCompress 项配置,如果没配置的话,资源都被压缩了。所以在Unity运行时,需要加载资源之前都要经过一次解压操作,导致卡顿严重。

    aaptOptions {
        noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp'] + unityStreamingAssets.tokenize(', ')
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:!CVS:!thumbs.db:!picasa.ini:!*~"
    }