Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上

先上最终方案链接,想自己学习的朋友可以直接去学,我的博客主要针对安卓VR一体机,但是人家原文是对各个平台的去除Logo都有描述:

GitHub - kiraio-moe/remove-unity-splash-screen:一种完整但肮脏的免费删除Unity启动画面的方法

好消息,我研究成功了,等有空闲了把成功的做法发上来

想研究的自己去看上面的链接,我下面的博文经过测试是不起作用的,反而带来新的问题

如果你选择继续看我的博客,那么我先告知下,我的博客是针对安卓VR一体机的Unity程序去除Logo的一个全流程讲述。

我是Unity的2020.3.30版本,打包的GSXR(NoloVR)眼镜,这个眼镜是个安卓平台的VR一体机。

一、先说下最正规去除Unity的闪屏Logo的方式,就是购买Unity的许可证支持官方,没什么好说的。

二、再说下传统的常见的去除Unity的闪屏Logo的几种方式(这些方式不适用于我):

1.Unity 在不破解的情况下如何去掉启动Logo_unity 去掉启动画面_AlianBlank的博客-CSDN博客

评析:此博客写的不清晰,我不太会用,而且如果是直接跳过闪屏阶段的话,也会导致我的VR一体机初始化失败。所有跳过闪屏阶段的方案,基本都会导致VR一体机初始化失败。

2.【Unity】一步跳过Unity启动屏/Logo, 全平台适用,Unity官方API支持_unity去除启动logo_TopGames的博客-CSDN博客评析:此博客简单易用,也的确起作用。但它还是直接跳过闪屏阶段,会导致我的VR一体机初始化失败。所有跳过闪屏阶段的方案,基本都会导致VR一体机初始化失败。

3.

Unity清除启动Logo视频教程-CSDN程序员研修院

Unity3D隐藏启动logo_unity去除启动logo_言并肃的博客-CSDN博客

【Unity终极奥义】Unity打包去掉启动画面Logo,无需破解,一学就会_unity去除logo_呆呆敲代码的小Y的博客-CSDN博客

评析:手写安卓的arr包,自定义启动画面,遮住Unity的闪屏,我提供三个博客供大家鉴赏,不保证它们能用,反正我是没太搞会这些东西。

4.我用过PicoVR的一体机,它直接提供了自定义开机闪屏的设置选项,设置后VR程序就不会显示Unity的Logo,而是你设置的那个Logo图片,本事大的可以看看它底层是咋处理的。

三、我新找到的终极方案(目前还没进行实机测试效果)

1.首先你需要会对打包后的APK文件进行反编译、重签名再打包(此过程和Unity编辑器无关,后面将这两个步骤操作统一简称为反编译打包)。如果你会这些的话,那就很简单。如果不会,我也有博客供你学习。

Manifest文件修改(安卓)_修改androidmanifest_楚江_wog1st的博客-CSDN博客

注意,学习此博客时有三个地方需要注意:

    第一,修改Mainfest文件并不是必须的,这个如果你没有这方面需求,可以不改,只走这个反编译打包的流程即可;

    第二,是关于打包时的keystore文件,如果你知道这个文件并知道它的作用,那自然没问题。但如果不知道这个文件,那就听我说一说,这个文件是安卓打包必须要有的,无论是Unity编辑器里打包还是反编译打包,都需要这个文件。如果你平时在Unity里没设置过此文件就打包,那是因为Unity系统自动给你设置了默认的keystore文件。

    现在即将进行反编译打包的操作,如果你当前现有的APK文件是用Unity的默认keystore文件打包的,那你在反编译打包前有两种选择:

    一是去网上搜索keystore文件的教程学会它,然后创建属于自己的keystore文件,利用Unity编辑器打包个新的APK文件,最后用新的APK文件和自己创建的keystore文件进行反编译打包;

    二是因为某些原因无法用新创建的keystore文件在Unity编辑器里打包新的APK文件,只能用当前现有的APK文件进行反编译打包,那你就需要去找到打包当前APK文件时的Unity编辑器所用的默认的keystore文件。

    Unity默认的keystore文件的存储路径:C:\User\Administrator\.android\debug.keystore

    Unity默认的keystore文件的     key名称:androiddebugkey    key密码:android     (非常重要)

    第三,反编译结束后的重签名步骤的命令行格式:jarsigner -verbose -keystore debug.keystore -signedjar new.apk old.apk androiddebugkey

    !!!!!需要注意,重签名的命令不能照抄上链接中博客的命令,需要按照我这个命令格式来修改。红色是固定格式,绿色是keystore文件名称,蓝色是你想要的重签名后的APK的名称,黄色是反编译结束但还没有重签名的APK的名称,紫色是keystore文件中的key名称。

    如果你用的是Unity默认的keystore文件来签名且没有修改keystore文件的名称,那就只用修改命令中的两个新旧apk文件名称即可,其他的我都填好了。如果你用的是你自己创建的keystore文件来签名,那就需要把绿色和紫色部分改成你自己的。

2.经过上面那个博客的洗礼,想必你已经学会了反编译打包的流程,现在正式进入修改Logo的环节,在此之前把你上面学习反编译打包遗留下的文件夹和文件先删掉吧。

(1)我先声明一下几个名称:从Unity打包出来的APK文件,我会统称为Unity.APK;反编译后的APK文件,我会成为反编译.APK;重签名后的APK文件,我会统称为重签名.APK

(2)接下来,要做的事情,是确定你用Unity编辑器打包APK时。

打包设置如下图:

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第1张图片

图片中画红线地方必须保证设置和我一致,因为我这篇博客只讲此情况下如何修改Logo,如果你的设置和我不一致,请自行去学习GitHub上的那篇文章,它有讲其他设置的状况下如何操作。

闪屏设置如下图:

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第2张图片

 因为我的是VR,我也并不想自定义Logo,所以就设置的黑色背景和黑色Logo。我估计就算自定义了Logo,在VR里也还是双眼呈现的,所以并不推荐你自定义Logo。

(3)开始进行这一步骤,下载Unity 资源包提取器 (UABE),我下载的是3.0版本的64位程序,下载后解压即可使用,下载链接如下:发布 ·Serious Cache/UABE (github.com)

(4)利用apktool将Unity.APK反编译解压为文件夹(如果不会,就去学习上面的反编译打包流程),在文件夹的路径中找到如下文件,用Unity 资源包提取器 (UABE)打开:

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第3张图片

 (5)找到这个数据,选中它:

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第4张图片

 (6)然后点击软件右侧的“ViewData”按钮打开该数据:

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第5张图片

(7)再点击左侧的加号将它展开,并找到这两个变量:

 Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第6张图片

(8)将这两个变量都设置为0: 

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第7张图片

 (9)选中此文件:

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第8张图片

(10)然后如下保存至其他路径:

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第9张图片

 Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第10张图片

 (11)复制“其他路径”的“unity default resources”文件到解压文件夹中原来的路径去,替换掉原有的文件:(复制之前,记得关闭UABE)

Unity的闪屏Logo去除、移除、隐藏,在安卓平台的VR一体机上_第11张图片

(12)将解压文件夹利用apktool压缩成反编译.APK

(13)利用keystore文件对反编译.APK进行重签名

(14)最后得到重签名.APK,这个APK就是能正常使用的APK了。不出意外的话,这个APK装在VR眼镜上运行,应该会看不到Unity的Logo了。而且也不会影响VR眼镜的初始化,因为其闪屏阶段本质上还是在的。

你可能感兴趣的:(Unity3D,vr,unity,安卓,android,游戏引擎)