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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Unity3D开发之----将预设体Prefab压缩成AssetBundle文件

發布時間:2024/3/13 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D开发之----将预设体Prefab压缩成AssetBundle文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我在寫這邊文章之前參照了如下文章:
https://www.jianshu.com/p/5d4145cd900c

----------------------------我是分割線--------------------------

Asset Bundle的作用:
1.AssetBundle是一個壓縮包包含模型、貼圖、預制體、聲音、甚至整個場景,可以在游戲運行的時候被加載;
2.AssetBundle自身保存著互相的依賴關系;
3.壓縮包可以使用LZMA和LZ4壓縮算法,減少包大小,更快的進行網絡傳輸;
4.把一些可以下載內容放在AssetBundle里面,可以減少安裝包的大小;

什么是AssetBundle
可以歸為兩點:
1,它是一個存在于硬盤上的文件。可以稱之為壓縮包。這個壓縮包可以認為是一個文件夾,里面包含了多個文件。這些文件可以分為兩類:serialized file 和 resource files。(序列化文件和源文件)
serialized file:資源被打碎放在一個對象中,最后統一被寫進一個單獨的文件(只有一個)
resource files:某些二進制資源(圖片、聲音)被單獨保存,方便快速加載
2,它是一個AssetBundle對象,我們可以通過代碼從一個特定的壓縮包加載出來的對象。這個對象包含了所有我們當初添加到這個壓縮包里面的內容,我們可以通過這個對象加載出來使用。

如何操作?
1.首先,先將游戲物體設置成Prefab預設體(在U3D中創建游戲物體,然后在Assets文件夾下創建一個Prefab文件夾,并將物體拖拽到該文件夾中,就形成了預設體)
然后對該預設體進行編輯:

這里的含義是:生成的AssetBundle文件會生成在scene文件夾下的model.ab文件中,用戶可以自定義。
2.在Assets目錄下創建一個Editor文件夾,并在Editor文件夾下創建編輯擴展腳本(一定要在Editor文件夾下創建編輯擴展腳本,否則不會生效!!!

這里名字隨便命名,注意規范!
3.該腳本代碼如下:

using UnityEditor; using System; using System.IO;public class CreateAssetbundles {//可以讓U3D的菜單欄生成指定名稱的菜單項,點擊后,用來調用該方法[MenuItem("AssetsBundle/Build AssetBundles")]static void BuildAllAssetBundles()//進行打包{string dir = "AssetBundles";//判斷該目錄是否存在if (Directory.Exists(dir) == false){Directory.CreateDirectory(dir);//在工程下創建AssetBundles目錄}//參數一為打包到哪個路徑,參數二壓縮選項 參數三 平臺的目標/*BuildAssetBundleOptions.None:使用LZMA算法壓縮,壓縮的包更小,但是加載時間更長。使用之前需要整體解壓。一旦被解壓,這個包會使用LZ4重新壓縮。使用資源的時候不需要整體解壓。在下載的時候可以使用LZMA算法,一旦它被下載了之后,它會使用LZ4算法保存到本地上。BuildAssetBundleOptions.UncompressedAssetBundle:不壓縮,包大,加載快BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4壓縮,壓縮率沒有LZMA高,但是我們可以加載指定資源而不用解壓全部。注意使用LZ4壓縮,可以獲得可以跟不壓縮想媲美的加載速度,而且比不壓縮文件要小。*/BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);} }

編寫好代碼之后,U3D的菜單欄會生成一個菜單項:

總結

以上是生活随笔為你收集整理的Unity3D开发之----将预设体Prefab压缩成AssetBundle文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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