最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity項目優(yōu)化相關(guān)技巧

 更新時間:2021年09月03日 15:50:03   作者:LOONGV  
隨著項目越做越大,工作年限的增加,對項目的優(yōu)化方面要求也越來越高(面試必備),本文簡單羅列一些unity項目中的優(yōu)化技巧,有需要的朋友可以參考下

一、簡單優(yōu)化

1.圖片紋理大小盡量為2的冪次方(比如128,512,1024等等),以便unity對其進行優(yōu)化。

2.將多個小圖片紋理合并一個大的圖片紋理以降低drawcall,特別是同一個ui面板的元素都放到一個圖集中,背景圖片盡量單獨做一個圖片。

3.盡可能的共用材質(zhì)球,原因同上。

4.不需要播放動畫的模型把Animator或animation組件刪除掉,因為不管用或不用他們都會被初始化。

5.模型方面要注意盡可能的減少頂點數(shù)和三角面數(shù),盡可能重用頂點

6.紋理的mipmap視情況開關(guān)(一般用于3D場景,UI和2D游戲中不要使用),打開的話可以減少紋理疊加時的抖動閃爍問題加快渲染速度,減少圖像鋸齒;但是會占用更多的內(nèi)存空間以及使項目的打包文件變大(畢竟生成了一系列逐層縮小的備份小圖)。

7.將場景中不會發(fā)生變化(位移、旋轉(zhuǎn)等)的物體設(shè)置為Static,方便unity進行靜態(tài)批處理。

8.打開player setting中的靜態(tài)批處理(Static Batching)和動態(tài)批處理(Dynamic Batching):靜態(tài)批處理需要勾選場景中不需要變化的物體的Batching Static,否則不會起到優(yōu)化效果;注意,使用合批處理后僅是降低了CPU到GPU的傳輸次數(shù)和SetPassCall且不需要再次執(zhí)行頂點變化操作,但是會增大包體及內(nèi)存消耗。

9.燈光方面Spotlight開銷很大要盡量少用。

10.盡量少用實時陰影,若必用不可則使用Hard Shadow。

11.謹(jǐn)慎使用半透明材質(zhì)和UI以減少overdraw,如alpha為0的image雖然不可見但是gpu仍然會對其進行繪制;若UI中存在很多半透明界面,建議UI由單獨的攝像機進行渲染,且UI不要疊加到場景攝像機渲染范圍內(nèi)。

二、優(yōu)化進階

1.使用緩沖池管理需要經(jīng)常出現(xiàn)和銷毀的object。

2.視情況使用lod技術(shù),使用此技術(shù)需要制作多套模型,故而會使項目的打包文件變大同時會占用更多內(nèi)存,但是可以降低需要繪制的頂點數(shù)目,若距離調(diào)整不好可能會出現(xiàn)模型突變的情況。

3.視情況使用OC(遮擋剔除)功能(通常用于場景中有大量模型的情況),使用此功能可以大大降低overdraw(畢竟被遮擋的物體直接不渲染了),需要注意物體的大小要與單元格大小達到一個平衡;可以通過設(shè)置物體的Occluder Static和Occludee Static來控制物體為遮擋物或被遮擋物。此技術(shù)的缺點就是會耗費額外的CPU。

4.使用燈光貼圖搭配light probe group來替代實時光照,使用此技術(shù)對模型要求較高,不能有UV錯亂、法線錯亂的情況,否則會出現(xiàn)很奇葩的狀況;同時使用此技術(shù)將不會有動態(tài)陰影生成。

5.針對不同的平臺對紋理進行壓縮(比如IOS為pvrtc;安卓為ETC1,若有alpha通道則使用RGBA 16-bit),需要注意的是壓縮后有時會影響紋理的質(zhì)量。

6.不同UI界面使用多個Canvas,因為unity為了性能優(yōu)化會合并canvas下所有元素到一個Mesh中;如果所有界面放到一個canvas,在界面發(fā)生變化的時候會造成重繪,降低性能,最優(yōu)解是一個靜態(tài)的ui放一個canvas,動態(tài)的ui視情況分別放到不同canvas中,注意也不要分的太細(xì)不然會造成dc的增加。

7.蒙皮網(wǎng)格動畫改為頂點動畫,用空間換時間

8.移動端若對渲染幀率沒有特定要求,可以通過降低幀率的形式來節(jié)省機器性能,需要注意在 

在項目配置類或主類中的Awake或Start中加入下面的代碼

Application.targetFrameRate = 30;    //移動平臺默認(rèn)30為比較節(jié)省電量的幀率,若要達到最佳性能則設(shè)置為300(這樣機器會盡其所能提高幀率,但是很大概率達不到300)

9.合理利用Profiler進行性能瓶頸分析與優(yōu)化。

10.將Terrain轉(zhuǎn)為Mesh,大地圖使用流式加載及卸載技術(shù)。

11.模型的蒙皮網(wǎng)格動畫改為頂點動畫,用空間換時間。

12.使用Animation Instancing優(yōu)化大量模型動畫。

13.盡可能用BoxCollider替代MeshCollider。

三、深度優(yōu)化(操作起來比較復(fù)雜,需要掌握一些底層知識或需要極端優(yōu)化的情況)

1.使用自定義shader

2.合并mesh(此處可以學(xué)習(xí)下林大佬寫的相關(guān)博客

3.UI中不涉及到射線檢測的Canvas把GraphicRaycaster組件刪掉

4.盡量少用LayoutGroup和contentSizeFitter,雖然用起來比較方便,但是在用戶操作時會導(dǎo)致整個ui界面的重繪,有能力的大牛建議自己寫一個算法來實現(xiàn)局部的重繪,沒有能力的就只能在使用這倆組件的地方使用單獨的Canvas來盡量避免整個UI的重繪了。

5.視情況使用單通道實例化渲染:要啟用此功能,請打開 Player 設(shè)置(選擇 Edit > Project Settings__,然后選擇 Player__ 類別)。在 Player 設(shè)置中,導(dǎo)航到底部的 XR Settings 面板,選中 Virtual Reality Supported 選項,然后從 Stereo Rendering Method 下拉菜單中選擇 Single Pass Instanced (Preview)。

四、代碼相關(guān)優(yōu)化

1.用for循環(huán)替代foreach、

2.用gameObject.CompareTag("tag")替代gameObject.tag="tag".

3.Find、GetComponent方法盡量在Start、Awake之中調(diào)用,不要在Update之類方法中調(diào)用。

4.用string.format替代+拼接字符串。

5.物理檢測在fixedUpdate中進行。

以上就是Unity項目優(yōu)化相關(guān)技巧的詳細(xì)內(nèi)容,更多關(guān)于Unity項目優(yōu)化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 手把手教你學(xué)會HBuilder打包APP

    手把手教你學(xué)會HBuilder打包APP

    我們打包APP需要用到HBuilder,所以本文主要介紹了HBuilder下載安裝以及如何使用,最后介紹如何打包app,感興趣的可以了解一下
    2021-06-06
  • gitlab項目如何修改主分支main為master以及可能遇到的問題詳解

    gitlab項目如何修改主分支main為master以及可能遇到的問題詳解

    本文詳細(xì)介紹了如何將Git倉庫的主分支名稱從main修改為master,包括本地和遠(yuǎn)程倉庫的更改步驟,以及如何在GitLab上更改默認(rèn)分支和刪除受保護分支
    2024-11-11
  • 進制轉(zhuǎn)換基礎(chǔ)

    進制轉(zhuǎn)換基礎(chǔ)

    很多年前大學(xué)里學(xué)過的進制轉(zhuǎn)換還是挺簡單的,沒想到多年不用了,都忘了,剛好看到這篇文章,特分享下,方便需要的朋友
    2013-02-02
  • linux?部署apache服務(wù)的步驟

    linux?部署apache服務(wù)的步驟

    這篇文章主要介紹了linux部署apache服務(wù)的步驟,部署apache服務(wù)的步驟本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • win11?C盤出現(xiàn)鎖和黃色感嘆號的解決方法

    win11?C盤出現(xiàn)鎖和黃色感嘆號的解決方法

    這篇文章主要介紹了win11?C盤出現(xiàn)鎖和黃色感嘆號的解決方法,文中有詳細(xì)的解決方案,對大家的解決問題有一定的幫助,需要的朋友可以參考下
    2007-02-02
  • 淺談Git分支管理策略

    淺談Git分支管理策略

    這篇文章主要介紹了淺談Git分支管理策略,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • IDEA怎么切換Git分支的實現(xiàn)方法

    IDEA怎么切換Git分支的實現(xiàn)方法

    這篇文章主要介紹了IDEA怎么切換Git分支的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Git的使用規(guī)范流程總結(jié)

    Git的使用規(guī)范流程總結(jié)

    大家都明白在團隊開發(fā)中,遵循一個合理、清晰的Git使用流程,是非常重要的。否則,每個人都提交一堆雜亂無章的commit,項目很快就會變得難以協(xié)調(diào)和維護。所以這篇文章給大家分享了Git的使用規(guī)范流程,有需要的可以參考借鑒。
    2016-09-09
  • 2018年GitHub賬戶注冊圖文教程(github從注冊到使用)

    2018年GitHub賬戶注冊圖文教程(github從注冊到使用)

    Github是最流行的代碼庫,里面存儲著豐富的優(yōu)秀的開源代碼。不僅如此,作為一款免費的代碼存儲利器也是流的一逼,支持各種編程語言,代碼顯示效果堪稱完美,可以隨時隨地查看自己記錄的筆記
    2018-02-02
  • vscode使用markdown無法預(yù)覽網(wǎng)絡(luò)圖片的解決方法

    vscode使用markdown無法預(yù)覽網(wǎng)絡(luò)圖片的解決方法

    本文主要介紹了vscode使用markdown無法預(yù)覽網(wǎng)絡(luò)圖片的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評論

云安县| 大港区| 若羌县| 三穗县| 遂溪县| 宜宾县| 枝江市| 利川市| 南溪县| 吉安县| 常德市| 慈溪市| 平舆县| 蒙城县| 台中市| 澳门| 锡林郭勒盟| 罗平县| 金溪县| 米脂县| 治多县| 桐庐县| 谷城县| 逊克县| 东台市| 宝山区| 辛集市| 林芝县| 如东县| 阆中市| 长岛县| 潍坊市| 怀远县| 阜阳市| 沈丘县| 鄱阳县| 邵武市| 繁昌县| 怀安县| 萝北县| 蓝山县|