1. gzyueqian
      13352868059

      粵嵌教你在Unity3D游戲如何加快冷啟動(dòng)時(shí)間

      更新時(shí)間: 2017-09-13 15:13:42來(lái)源: 粵嵌教育瀏覽量:4536

        Unity3D游戲不管從畫面還是技能來(lái)看,都給予玩家強(qiáng)烈的視覺(jué)享受,因此受到眾多玩家的青睞。unity3D游戲如何加快冷啟動(dòng)時(shí)間,粵嵌簡(jiǎn)單為你介紹一下。

        相比于Android或者iOS原生App,Unity3D引擎開(kāi)發(fā)的游戲在冷啟動(dòng)時(shí)間上確實(shí)比較長(zhǎng)。三星SM-N9008手機(jī)上的測(cè)試結(jié)果是一個(gè)不算大的項(xiàng)目,如果使用Mono后端編譯,則需要10秒左右的冷啟動(dòng)時(shí)間,而如果使用IL2CPP后端編譯,則冷啟動(dòng)時(shí)間為7秒左右。

        IL2CPP相比于Mono確實(shí)能夠加快冷啟動(dòng)時(shí)間,這是可以預(yù)期的。因?yàn)樵贛ono編譯的情況下,每個(gè).cs文件都是一個(gè)TextAsset文件,而所有的.cs文件都需要在冷啟動(dòng)時(shí)候全部加載到內(nèi)存中,這些碎片化的文件加載操作都會(huì)占用冷啟動(dòng)時(shí)間。關(guān)于冷啟動(dòng)需要加載哪些文件的分析,可以參考Unity3D游戲在啟動(dòng)時(shí)都默認(rèn)加載哪些資源。而IL2CPP會(huì)把所有的C#代碼編譯成C 代碼,然后再進(jìn)行編譯、鏈接等操作,這樣就減少了C#、DLL所帶來(lái)的開(kāi)銷。

        在項(xiàng)目中我們應(yīng)該怎樣加快游戲的冷啟動(dòng)速度呢?總結(jié)出以下幾個(gè)優(yōu)化的要點(diǎn):

        項(xiàng)目中添加一個(gè)Loading場(chǎng)景,這個(gè)場(chǎng)景會(huì)是游戲啟動(dòng)的個(gè)場(chǎng)景。

        在Loading場(chǎng)景中盡量少的依賴,盡量少的紋理依賴、AssetBundle依賴、代碼依賴,總之,這個(gè)Loading場(chǎng)景一定要盡量少的依賴,這個(gè)場(chǎng)景一定要盡量簡(jiǎn)單,這樣才能保證盡快的加載速度。

        在游戲中盡量少的使用Resources方式管理資源,Resources目錄下面的所有資源會(huì)在ResourceManager中記錄下來(lái),而ResourceManager就是一個(gè)文件,通常是一個(gè)YAML格式的文本文件。而這個(gè)文件是會(huì)在冷啟動(dòng)時(shí)加載的。所以Resources目錄下面的有越多的資源,那么這個(gè)ResourceManager就會(huì)越大,加載時(shí)間也會(huì)越長(zhǎng)。

        使用Resources方式管理資源還有一個(gè)壞處,就是所有的資源都是統(tǒng)一管理的,這樣的資源的管理粒度沒(méi)辦法控制。建議使用AssetBundle的方式管理,這樣可以使用多個(gè)AssetBundle來(lái)管理資源。把在Loading場(chǎng)景中需要的小資源集放在一個(gè)AssetBundle中,這樣在冷啟動(dòng)時(shí)啟動(dòng)Loading場(chǎng)景時(shí),只需要加載一個(gè)AssetBundle即可。選擇合適的粒度管理AssetBundle,可以在合適的時(shí)候加載某一個(gè)AssetBundle,不使用時(shí)就可以卸載某一個(gè)AssetBundle。

        在Loading場(chǎng)景中,添加一個(gè)進(jìn)度條,然后同步加載進(jìn)入主場(chǎng)景所需要的AssetBundle,這樣用戶就不會(huì)感到等待時(shí)間太煩躁了。同步加載要比異步加載時(shí)間更短。

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

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

        強(qiáng)烈建議使用IL2CPP后端,如果使用IL2CPP,則可以忽略上面這一條。

        對(duì)于unity3D游戲如何加快冷啟動(dòng)時(shí)間,相信大家已經(jīng)知曉了,粵嵌教育有提供unity3D開(kāi)發(fā)一系列教程和資源,幫你以快速的方式實(shí)現(xiàn)游戲開(kāi)發(fā)的夢(mèng)想!




      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 久久悠悠色综合视频 | 在线不卡AV电影在线观看 | 日韩AV在线免费观看 | 午夜福利国产在线观看1 | 久久亚洲精品永久网站 | 亚洲欧洲精品天堂一级 |