第一种方式,SDK做,走原生Android流程,百度很多,不介绍了,缺点不方便,优点嘛,没找到。。。。
第二种方式,unity自带的开机静态图片,具体如下:
1、Android
设置好启动黑屏需要的静态图片,选择对应的缩放模式,出包,点击游戏icon,你会发现,在启动unity自己的activity之前,会有一张闪屏,替代了黑屏界面。
这么做的目的嘛,就是为了提升游戏体验,例如网易很多游戏多有这种处理。
官方链接:https://docs.unity3d.com/Manual/class-PlayerSettingsAndroid.html
2、ios的就不说了,同样也支持,但是直接xcode做应该还省事一点,毕竟unity里面做ios的启动屏,太麻烦了,各种iPhone iPad适配问题。
2.1 更新,ios启动闪屏unity也可以做了,很方便,亲测有效,闪屏大小=1024 x 1024
在unity中设置好了以后,然后到处xcode工程,xcode出包到真机测试就好了。
3、具体细节
不可放过的细节-Unity3D Launch Screen和Splash Screen设定
很多Unity开发人员,做了好几年的Unity开发,却没有仔细的研究过Unity 的启动画面。
我们会发现有的游戏启动的时候萤幕会黑一下、闪屏一下、白一下等等等。
我们一般都在看如何正确设定Spalsh Screen。其实, iOS 平台,在Splash Screen前面,还有一个Launch Screen。
iOS上的启动过程Launch Screen -> Splash Screen->Game Scene
开启PlayerSetting,看下图
图1
2 为LaunchScreen 设定部分, 1 为SplashScreen设定部分。
我们先来看看Launch Screen 部分,这是iOS 本身自带的功能。对应的Xcode设定的地方如下图
图2
原生iOS 应用开发就是通过这里设定的启动页面。可以看看自己手机上,头条、微信等Aapp,点选启动,预设就有一张图片。
如果我们Unity的Launch Screen部分没有正确设定,那么就会先黑一下,而不是像原生App那样快速的显示启动页面。
勾选了图1 中的Use Storyboard for Launch,需要手动选择一个Xcode中建立的Storyboard作为启动页面。
不勾选Use Storyboard for Launch的情况下。Launch Screen type选项如下:
Default : 使用预设的LaunchScreen(蓝黑色背景)
新建的Unity工程,预设的是Default选项,这也就是为什么我们的游戏在启动时会黑屏一下的原因。
None:生成的Xcode工程没有定制LaunchScreen
ImageAndBackgroundRelative: 使用设定的图片,按设定的比例缩放, fill percentage 为占比多少
ImageAndBackgroundConstant:使用设定的图片,固定大小,size in points 为固定大小
CustomXib:使用一个指定Interface Builder (.xib) 作为启动
以上设定对应生成的XCode中的
[图片上传失败...(image-7ea45e-1597827085435)]
XCode 中有LaunchScreen.storyboard 或者LaunchScreen.xib,苹果预设使用的就是拿这个当启动页,这是一个静态的页面,不能写程式码,也就是只能用自动布局来适配萤幕的大小,但是这个相容性不强,低版本的不能使用。Legacy Launch Images 部分就是为了相容低版本的iOS. 对应xcode中的
关于Splash Screen, 我们可以不勾选,然后用Unity的第一个Scene来实现Splash 内容。不再赘述。
最后为了验证Launch Screen的作用,方便我们检视效果我们修改下Unity生成的Xcode的程式码,让Launch Screen多停留3秒。找到UnityAppController.mm 档案,didFinishLaunchingWithOptions 里面新增
[NSThread sleepForTimeInterval:1];
然后执行一下看看。
测试设定如下:
效果如下