1. gzyueqian
      13352868059

      粵嵌教你在Unity3D游戲如何加快冷啟動時間

      更新時間: 2017-09-13 15:13:42來源: 粵嵌教育瀏覽量:4442

        Unity3D游戲不管從畫面還是技能來看,都給予玩家強烈的視覺享受,因此受到眾多玩家的青睞。unity3D游戲如何加快冷啟動時間,粵嵌簡單為你介紹一下。

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

        IL2CPP相比于Mono確實能夠加快冷啟動時間,這是可以預期的。因為在Mono編譯的情況下,每個.cs文件都是一個TextAsset文件,而所有的.cs文件都需要在冷啟動時候全部加載到內存中,這些碎片化的文件加載操作都會占用冷啟動時間。關于冷啟動需要加載哪些文件的分析,可以參考Unity3D游戲在啟動時都默認加載哪些資源。而IL2CPP會把所有的C#代碼編譯成C 代碼,然后再進行編譯、鏈接等操作,這樣就減少了C#、DLL所帶來的開銷。

        在項目中我們應該怎樣加快游戲的冷啟動速度呢?總結出以下幾個優化的要點:

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

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

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

        使用Resources方式管理資源還有一個壞處,就是所有的資源都是統一管理的,這樣的資源的管理粒度沒辦法控制。建議使用AssetBundle的方式管理,這樣可以使用多個AssetBundle來管理資源。把在Loading場景中需要的小資源集放在一個AssetBundle中,這樣在冷啟動時啟動Loading場景時,只需要加載一個AssetBundle即可。選擇合適的粒度管理AssetBundle,可以在合適的時候加載某一個AssetBundle,不使用時就可以卸載某一個AssetBundle。

        在Loading場景中,添加一個進度條,然后同步加載進入主場景所需要的AssetBundle,這樣用戶就不會感到等待時間太煩躁了。同步加載要比異步加載時間更短。

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

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

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

        對于unity3D游戲如何加快冷啟動時間,相信大家已經知曉了,粵嵌教育有提供unity3D開發一系列教程和資源,幫你以快速的方式實現游戲開發的夢想!




      免費預約試聽課

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

      
      

      1. 精品国产经典三级在线看 | 熟女偷拍中文字幕视频 | 亚洲精品网国产 | 中日韩国内精品视频 | 一级a在线观看中文字幕 | 婷婷精品视频亚洲 |