在游戲啟動(dòng)時(shí)取消 unity logo
1. 使用方法
? 將 SkipUnityLogo 這個(gè)文件夾放在 Assets 下的任意路徑
? 在編輯器上方的工具欄 EditorTools/SkipUnityLogo 下,有兩個(gè)我做的快速設(shè)置啟動(dòng)畫面的選項(xiàng)
? ? ? ? ? - 設(shè)置啟動(dòng)畫面為黑色背景 ------ 適用于你自定義的 Logo 是純白的
? ? ? ? ? - 設(shè)置啟動(dòng)畫面為白色背景 ------ 適用于你自定義的 Logo 是純黑的
附帶了我從 UnityChan 的包里提取的啟動(dòng)畫面場景,可以用來測試一下
? ????????? - 在 File-> BuildSetting 里把SplashScreen_Dark(對應(yīng)黑色背景啟動(dòng)畫面)或者 SplashScreen_Light(對應(yīng)白色背景啟動(dòng)畫面)拖進(jìn)去設(shè)置為第一個(gè)(右邊索引為 0)
? ? ????????- Build 打包出去,enjoy!

?2. 原理
? 在 2019.2 以后的版本,unity 官方“好心”的在腳本 api 中加入了能停止繪制啟動(dòng)畫面的方法和枚舉(在官方手冊可以查到):
? ? ????????- 在 UnityEngine.Rendering 下面的 SplashScreen 類,有一個(gè) Stop方法
?????????????- 只要傳入這個(gè)枚舉,就可以立即停止渲染 unity 啟動(dòng) logo
?這樣還不行,還是會(huì)有啟動(dòng) logo(如果你寫的這個(gè)類繼承了 MonoBehavior,并掛在第一個(gè)場景的任意 GameObject 上也不行,因?yàn)橄胍獔?zhí)行這個(gè)腳本,就必須得先加載包含這個(gè) GameObject 的場景,而啟動(dòng)畫面是在場景加載前渲染的,所以行不通),
原因在于它根本不會(huì)被執(zhí)行,所以還需要在你寫的方法調(diào)用 Stop() 前加上:
?這個(gè)特性,用它另一個(gè)重載,能接收 RuntimeInitializeLoadType 枚舉參數(shù)的這個(gè):
它有一個(gè)枚舉叫
把這個(gè)傳進(jìn)去就可以了
即:?
現(xiàn)在已經(jīng)實(shí)現(xiàn)了跳過啟動(dòng) logo,但是效果還不夠好,現(xiàn)在運(yùn)行打包好的程序你會(huì)發(fā)現(xiàn)畫面會(huì)灰一下,原因在于:
? ????????- 調(diào)用 stop()它實(shí)際上是直接跳到渲染完啟動(dòng) logo 的最后一幀,而且在ProjectSettings->Player->SplashImage 選項(xiàng)卡下,它默認(rèn)使用的是設(shè)置好的背景顏色(Background Color),就算你調(diào)成了純黑(或純白),不透明度(Overlay Opacity)它不讓你調(diào)到 50%以下,所以才會(huì)出現(xiàn)這種情況。
? 解決辦法:雖然不透明度有限制,但是它有背景圖片(BackgroudImage)的選項(xiàng),所以最簡單的辦法就是,去 ps 里做一張很小的圖片遮罩,填充純黑(或純白),然后放在 BackgroudImage 上 把不透明度調(diào)成 1,完全蓋住下面的顏色,就解決了

百度盤鏈接:https://pan.baidu.com/s/1CoRG3qfxZZrcl4S2Frm81Q?pwd=my0b?