日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UGUI-- 图集制作

發布時間:2023/12/15 编程问答 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UGUI-- 图集制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、為什么要打圖集

UGUI與NGUI使用上最大的不同是,NGUI使用前就要打圖集,UGUI可以在之后再打圖集

打圖集的目的就是減少DrawCall,提高性能

簡單來說,DrawCall(DC)就是CPU通知GPU進行一次渲染的命令,如果DC次數較多會導致游戲卡頓,我們可以通過打圖集,將小圖合并成大圖,將本應n次的DC變成1次DC來提高性能

2、在Unity中打開自帶的打圖集功能

在工程設置面板中打開功能

Edit->Project Setting->Editor-> Sprite Packer(精靈包裝器,可以通過Unity自帶圖集工具生成圖集)

Disabled默認設置,不會打包圖集

Enabled For Build

(Legacy Sprite Packer)

Unity僅在構建時打包圖集,在編輯模式下不會打包圖集

Always Enable

(Legacy Sprite Packer)

Unity在構建時打包圖集,在編輯模式下運行前會打包圖集
Enabled For BuildUnity在構建時打包圖集,在編輯器模式下不會打包
Always EnabledUnity在構建時打包圖集,在編輯模式下運行前會打包圖集?

Legacy Sprite Packer傳統打包模式,相對下面兩種模式來說,多了一個設置圖片之間的間隔距離,有一個參數:

——Padding Power:選擇打包算法在計算打包的精靈之間以及精靈和生成的圖集邊緣之間的間隔距離,這里的數字代表2的n次方

但是在新版的Unity中,相關設置不同,分別是:

  • Sprite Atlas V1- Enabled For Builds;
  • Sprite Atlas V1- Always Enabled;
  • Sprite Atlas V2(Experimental)?Enabled;

3、打圖集參數注意

圖集創建:新建Sprite Atlas(新的版本在2D子目錄中)

在UI中如果需要打圖集,一般需要將Allow Rotation與Tight Packing勾選去掉

然后在Objects for Packing中將需要打包的圖集進行關聯,Pack Preview,之后每次加載圖片都從圖集中批處理一次性加載,減少DC次數,否則每次加載新圖片都要DC(重復的圖片不會增加DC次數)

注意:如果在相同圖集的關聯圖片之間插入一個不同圖集中的圖片/Text(即在Hierarchy中相鄰順序的圖集元素之間插入,例如A,B,C在同一圖集,D插入B,C之間)并且與圖集中的相應圖片重疊(D與C重疊),那么圖集的批處理會中斷,打斷渲染順序,增加DC次數。

創建圖集后只有在運行模式中才會生效,在編輯模式中Batches和以前不會有任何變化

如何觀察DC的次數:

Game窗口的Stats->Batches

4、代碼加載

// 加載圖集,參數為圖集名 SpriteAtlas sa = Resources.Load<SpriteAtlas>("myAtlas"); // 從圖集中加載指定名稱的小圖,可以為某些Image賦值加載 sa.GetSprite("bk");

總結

以上是生活随笔為你收集整理的UGUI-- 图集制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。