Unity3D 冷啟動簡介

相比于Android或者iOS原生App,Unity3D引擎開發(fā)的游戲在冷啟動時間上確實比較長。我在三星SM-N9008手機(jī)上的測試結(jié)果是一個不算大的項目,如果使用Mono后端編譯悼瘾,則需要10秒左右的冷啟動時間,而如果使用 IL2CPP 后端編譯审胸,則冷啟動時間為7秒左右亥宿。

IL2CPP相比于Mono確實能夠加快冷啟動時間,這是可以預(yù)期的砂沛。因為在Mono編譯的情況下烫扼,每個 .cs 文件都是一個 TextAsset 文件,而所有的 .cs 文件都需要在冷啟動時候全部加載到內(nèi)存中尺上,這些碎片化的文件加載操作都會占用冷啟動時間材蛛。關(guān)于冷啟動需要加載哪些文件的分析,可以參考Unity3D游戲在啟動時都默認(rèn)加載哪些資源怎抛。而IL2CPP會把所有的C#代碼編譯成C 代碼卑吭,然后再進(jìn)行編譯、鏈接等操作马绝,這樣就減少了C#豆赏、DLL所帶來的開銷。

在項目中我們應(yīng)該怎樣加快游戲的冷啟動速度呢?經(jīng)過調(diào)研掷邦,我總結(jié)出以下幾個優(yōu)化的要點:

1.項目中添加一個Loading場景白胀,這個場景會是游戲啟動的第一個場景。

2.在Loading場景中盡量少的依賴抚岗,盡量少的紋理依賴或杠、AssetBundle依賴、代碼依賴宣蔚,總之向抢,這個Loading場景一定要盡量少的依賴,這個場景一定要盡量簡單胚委,這樣才能保證盡快的加載速度挟鸠。

3.在游戲中盡量少的使用Resources方式管理資源,Resources目錄下面的所有資源會在ResourceManager中記錄下來亩冬,而ResourceManager就是一個文件艘希,通常是一個YAML格式的文本文件。而這個文件是會在冷啟動時加載的硅急。所以Resources目錄下面的有越多的資源覆享,那么這個ResourceManager就會越大,加載時間也會越長铜秆。

4.使用Resources方式管理資源還有一個壞處淹真,就是所有的資源都是統(tǒng)一管理的,這樣的資源的管理粒度沒辦法控制连茧。建議使用AssetBundle的方式管理,這樣可以使用多個AssetBundle來管理資源巍糯。把在Loading場景中需要的最小資源集放在一個AssetBundle中啸驯,這樣在冷啟動時啟動Loading場景時,只需要加載一個AssetBundle即可祟峦。選擇合適的粒度管理AssetBundle罚斗,可以在合適的時候加載某一個AssetBundle,不使用時就可以卸載某一個AssetBundle宅楞。

5.在Loading場景中针姿,添加一個進(jìn)度條,然后 同步加載 進(jìn)入主場景所需要的AssetBundle厌衙,這樣用戶就不會感到等待時間太煩躁了距淫。同步加載要比異步加載時間更短。

6.紋理資源在游戲中一般是最大的資源婶希,選擇合適的壓縮格式進(jìn)行壓縮榕暇,既可以減少內(nèi)存占用,又能夠加快資源的加載速度。壓縮格式的選擇要從顯示效果和壓縮率上進(jìn)行權(quán)衡彤枢。一般在Android上使用ETC格式狰晚,在iOS上使用PVRTC格式,在某些情況下缴啡,可能還可以考慮使用Alpha通道分離技術(shù)進(jìn)行壓縮處理壁晒。

7.代碼文件可以編譯成 .dll 文件, 減少大量TextAsset文件導(dǎo)致的碎片化加載時間业栅。

8.強烈建議使用IL2CPP后端讨衣,如果使用IL2CPP,則可以忽略第7條式镐。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末反镇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子娘汞,更是在濱河造成了極大的恐慌歹茶,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件你弦,死亡現(xiàn)場離奇詭異惊豺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)禽作,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門尸昧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人旷偿,你說我怎么就攤上這事烹俗。” “怎么了萍程?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵幢妄,是天一觀的道長。 經(jīng)常有香客問我茫负,道長蕉鸳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任忍法,我火速辦了婚禮潮尝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘饿序。我一直安慰自己勉失,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布嗤堰。 她就那樣靜靜地躺著戴质,像睡著了一般度宦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上告匠,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天戈抄,我揣著相機(jī)與錄音,去河邊找鬼后专。 笑死划鸽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戚哎。 我是一名探鬼主播裸诽,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼型凳!你這毒婦竟也來了丈冬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤甘畅,失蹤者是張志新(化名)和其女友劉穎埂蕊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疏唾,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蓄氧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了槐脏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喉童。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖顿天,靈堂內(nèi)的尸體忽然破棺而出堂氯,到底是詐尸還是另有隱情,我是刑警寧澤露氮,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布祖灰,位于F島的核電站,受9級特大地震影響畔规,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜恨统,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一叁扫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧畜埋,春花似錦莫绣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春掩宜,著一層夾襖步出監(jiān)牢的瞬間蔫骂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工牺汤, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留辽旋,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓檐迟,卻偏偏與公主長得像补胚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子追迟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 閱讀時間:15分鐘左右 概要 在優(yōu)化Unity游戲時溶其,我們一般從四個方面:CPU、GPU敦间、內(nèi)存瓶逃、工程配置等入手,它...
    JervieQin閱讀 1,699評論 0 8
  • 背景: 隨著游戲包越來越大每瞒,app冷啟動的耗時問題也越來越嚴(yán)重金闽,下面將利用一些工具分析一下android啟動耗時問...
    阿飛咯閱讀 16,673評論 0 10
  • 彩排完,天已黑
    劉凱書法閱讀 4,217評論 1 3
  • 表情是什么剿骨,我認(rèn)為表情就是表現(xiàn)出來的情緒代芜。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了浓利,難過就哭了挤庇。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,011評論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險厭惡者,不喜歡去冒險贷掖,但是人生放棄了冒險嫡秕,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 6,049評論 0 4