*本文中的方案,适用于支持Java文件打包的Unity2018.2及以上版本。
Android项目都会有一个默认启动类,通过Unity打包成AndroidStudio项目后,可以看到,在主包下面会有一个文件UnityPlayerActivity.java,这个就是Unity打包的工程的默认启动类。
一般来说,这个类是不需要修改的,但是我就遇到了特殊情况...
在接入第三方平台SDK的时候,因为某些原因,需要设置Activity的启动模式为sigleTop(Unity默认设置为sigleTask)。然而在Unity工程中通过Manifest文件直接修改该设置是无法生效的,因为在打包的时候,unity会重置该设置。好气啊。
然而,Unity修改启动方式是根据启动类来设置的,所以,如果能够把默认启动类替换成Unity不认识的一个,该设置就不会被重写了。
首先在AndroidStudio中新建一个继承自UnityPlayerActivity的类,暂且命名为UnityPlayerActivityTest。
如果使用继承的方式会导致打包失败,可以改成直接修改文件名的方式。
直觉和经验告诉我,Android启动类、权限这种东西,肯定是要在Manifest文件中修改的。找打AndroidManifest.xml文件,可以找到关于启动类设置相关的<intent-filter>略略略</intent-filter>条目。
可能不同的版本打包出来的内容略有不同,但是UnityPlayerActivity的设置就在这个条目中。将UnityPlayerActivity修改为UnityPlayerActivityTest。
注意