1. 程式人生 > >Unity打包/讀取AssetBundle資源全教程

Unity打包/讀取AssetBundle資源全教程

Unity 資源AssetBundle打包

本文提供全流程,中文翻譯。

Chinar 堅持將簡單的生活方式,帶給世人!

(擁有更好的閱讀體驗 —— 高解析度使用者請根據需求調整網頁縮放比例)
Chinar —— 心分享、心創新!

助力快速完成資源進行 AssetBundle 打包與讀取

為新手節省寶貴的時間,避免採坑!

Chinar 教程效果:
這裡寫圖片描述

全文高清圖片,點選即可放大觀看 (很多人竟然不知道)

1

AssetBundle Description —— 資源打包

AssetBundle 的具體定義網上諸多大神的解釋很是細緻,一搜一大片,在這裡我都不再班門弄斧了

這裡 Chinar 只簡單說下為什麼要用它
1. 如果所有的資原始檔,全部打包到程式中,那麼程式的安裝包就會很大

AssetBundle 檔案放在伺服器上,用的時候再從伺服器進行載入,所以這個包根本就不在程式當中
2. 那就是最主要的熱更新了
釋出軟體後,開發者進行很小的一次更新,都需要重新打包釋出

而對於使用者來說,需要重新下載進行安裝,無疑導致了使用者體驗不好。只要有更新,使用者就重新安裝程式

AssetBundle 技術,可以在使用者重灌軟體的情況下,做到更改程式中的一些資源,設定

開發者可以實時的完成更新,應用到所有使用者的客戶端上,非常方便

舉個栗子黑白88

2

AssetBundle Name —— AssetBundle名稱設定

我們如何將一個需要的資源打包到 AssetBundle 中呢?

Inspector 面板最下方,有一提供我們預覽的小視窗,可以拖動(如果沒有,就在最下方縮小著呢,拖上來即可)

AssetBundle 選項中, New 給資源包建立/指定一個名稱

注意-命名規範:
1. 必須小寫字母,就算你大寫了Unity也會自動轉小寫這裡寫圖片描述
2. 命名規範:名稱後要加 .unity3d / .assetbundle (例如:globule.unity3d)

(就算你起名的時候不加 .unity3d / .assetbundle
也是可以讀取的(但不規範,不推薦!))
這裡寫圖片描述
3. 名稱+“/”+另一個名稱,會自動生成子選項(打包時,會自動生成一個新的名稱資料夾) 這裡寫圖片描述

(進行 AssetBundle 打包操作後,會生成對應名稱的 AssetBundle 檔案:globule. unity3d)

如果有子選項的情況下打包後,會生成一個chinar資料夾,存放子選項名稱的檔案
舉個栗子黑白88
這裡寫圖片描述

3

Editor Menu —— 建立選單按鈕

寫一個編輯器指令碼,選單欄中新增一個按鈕,用來完成 AssetBundle 打包操作

為了規範,要建立一個 Editor資料夾,將指令碼放在該目錄中

點選按鈕會在工程檔案內, Assets 檔案外,自動建立一個名為 ChinarAssetBundles 的資料夾

舉個栗子黑白88
這裡寫圖片描述

using System.IO;
using UnityEditor;


/// <summary>
/// 打包指令碼 —— 放在 Editor 資料夾下(規範)
/// </summary>
public class ChinarAssetBundle
{
    [MenuItem("Chinar工具/打包AssetsBundle資源")] //選單欄新增按鈕
    static void BuildAllAssetsBundles()
    {
        string folder = "ChinarAssetBundles";                                                                               //定義資料夾名字
        if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);                                                  //資料夾不存在,則建立
        BuildPipeline.BuildAssetBundles("ChinarAssetBundles", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows); //建立AssetBundle
    }
}

4

BuildPipeline.BuildAssetBundles() —— 打包函式

等待系統編譯後,選單欄會增加一個按鈕 Chinar 工具 點選打包,即可完成資源打包


提示:

將需要打包 AssetBundle 的預設物、圖片、材質等資源設定對應 AssetBundle 名稱

系統會自動打包被設定名稱的檔案,沒有設定的都不會進行打包

這裡我指定了1個圖片、一個紋理,一個預設物進行打包
舉個栗子黑白88
這裡寫圖片描述

5

BuildPipeline.BuildAssetBundles() —— 打包函式

Unity 提供的打包函式,有多個過載函式

具體有什麼不同,請大家查詢下官方Api或者搜尋下網路大神的講解,這裡都不一一贅述了

無特別情況下,就用這一個就夠了

BuildPipeline.BuildAssetBundles("ChinarAssetBundle",BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);

支援

May Be —— 搞開發,總有一天要做的事!

擁有自己的伺服器,無需再找攻略!

Chinar 提供一站式教程,閉眼式建立!

為新手節省寶貴時間,避免採坑!



技術交流群:806091680 ! Chinar 歡迎你的加入
END

本部落格為非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究

對於需要複製、轉載、連結和傳播部落格文章或內容的,請及時和本博主進行聯絡,留言,Email: [email protected]

對於經本博主明確授權和許可使用文章及內容的,使用時請註明文章或內容出處並註明網址

相關推薦

Unity打包/讀取AssetBundle資源教程

Unity 資源AssetBundle打包 本文提供全流程,中文翻譯。 Chinar 堅持將簡單的生活方式,帶給世人!(擁有更好的閱讀體驗 —— 高解析度使用者請根據需求調整網頁縮放比例)

Unity中的AssetBundle 資源打包有什麼作用

AssetBundle首先從字面意思理解為資源捆綁,那麼他的作用就是將一部分資源(模型,貼圖,材質,預製體,聲音場景等等),打包壓縮在一起,那麼可能有人會問,對於unity專案,把資源壓縮打包有什麼用呢? 主要作用有兩點 1:減少安裝包的大小   首先你要了解unity

Unity 打包 讀取Txt檔案視窗初始化(解析度,視窗位置)

1. Unity 程式視窗初始化指令碼 using System; using System.Collections; using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.UI

Unity資源打包Assetbundle

nas rar 啟用 大致 ebp 掛載 href 交叉 bundle 本文原創版權歸 csdn janeky 全部。轉載請具體註明原創作者及出處,以示尊重。 作者:janeky 原文:http://blog.csdn.net/janeky/article/detail

Unity打包內部prefab和讀取外部assetbundle的方法詳解。

首先要在資料夾內建立Editor資料夾,把指令碼CreateAssetBundle.cs放進去。指令碼如下 using UnityEngine; using UnityEditor; using System.Collections; public class CreateAss

Unity AssetBundle資源打包,Depend依賴關係

這篇文章從AssetBundle的打包,使用,管理以及記憶體佔用各個方面進行了比較全面的分析,對AssetBundle使用過程中的一些坑進行填補指引以及噴! AssetBundle是Unity推薦的資源管理方式,官方列舉了諸如熱更新,壓縮,靈活等等優點,但Asse

Unity】Unity5版本的AssetBundle打包方案之資源打包

using UnityEngine; using System.Collections; using UnityEditor; /// <summary> /// 指令碼位置:Editor

Unity 淺談AssetBundle 遊戲資源

detail art 分類 下載 net sdn 代碼 logs http --剛剛做完一個xlua的的熱更項目,對AssetBundle資源分類總結一下。純理論,閑談知識,要是有建議,盡管提 ,不摻雜代碼。 --這裏說說,AB是如何打包,如果下載,如何加載。 關鍵詞理

實力封裝:Unity打包AssetBundle(四)

文件夾 鼠標 菜單 註意 pre 路徑 一點 依然 uid →→前情提要:窗口初現←← 讓用戶選擇要打包的文件 時至今日,我們選擇打包文件的方式依然是在Project面板或Hierarchy面板中用鼠標點選。現在既然有了窗口,我們自然希望可以將所有文件羅列在窗口中,然後在

實力封裝:Unity打包AssetBundle(番外篇)

再次 tar 我們 var ext 番外篇 菜單 fontsize 處女座 前情提要:第二種打包方式。 自定義AssetBundle包擴展名 在之前的教程中,我們已經多次提到過擴展名了,並且也已經說明了如何設置自定義的AssetBundle擴展名。至於為什麽還要把它單獨拿出

實力封裝:Unity打包AssetBundle(大結局)

函數返回 can width ldo 用戶輸入 sts leo ati 就是 →→前情提要:讓用戶選擇要打包的文件←← 大結局:更多選擇 Unity打包AssetBundle從入門到放棄系列終於要迎來大結局了【小哥哥表示實在寫不動了o(╥﹏╥)o】... 經過上一次的教程,

Unity 5.3 Assetbundle熱更資源

tope current 系統 suitable its fin loop engine nco Unity5以下的版本,要導出AssetBundle需要自己寫一大坨導出的代碼(BuildPipeline),想正確處理好資源的依賴關系從而保證資源完整而又不會產生重復資源是一

Unity引擎的AssetBundle資源管理技術)

一、Unity引擎的AssetBundle(資源管理技術)的介紹     ①Unity引擎的AssetBundle(資源管理技術)是通過動態載入與解除安裝資源,極大節約遊戲所佔空間,且實現遊戲釋出後關於資源的後續更新與完善的實時更新技術。     ②

【Unity3D】5.0版本之後的AssetBundle資源打包和解析載入

一、前言 這幾天在研究AssetBundle資源打包盒解析載入,也踩過很多坑,參考過很多人的文章 發現很多人關於AssetBundle的文章不是API過時了不能用,就是有點亂 也不是有點亂,就是摸不著頭腦,讓人不能快速的get到這個東西如何使用 所以我特意在踩

AssetBundle 資源打包 載入 解除安裝

1 給要打包的資源設定標記,表示對應的包名:    2 Unity5 AssetBundle不需要我們來管理引用關係了 3 可以使用程式碼批量設定包名 AssetImporter ai = AssetImporter.GetAtPath(as

unity使用AssetBundle使用記錄一(續)--場景打包AssetBundle並載入

//打包場景為AssetBundle,使用BuildPlayer方式 static void CreateSceneAssetBundle_BuildPlayer() { string[] name = GetSelectionFile(); for (int

[Unity]AssetBundle資源更新以及多執行緒下載

前言 此文章適合不太瞭解資源載入的萌新,有了入門基礎之後再去github上搜大牛寫的專業的資源載入方案才能得心應手,不然的話會看的很吃力或者說一臉懵逼。Unity裡面關於資源載入我們都知道是下載更新AssetBundle,關於AssetBundle我之

實力封裝:Unity打包AssetBundle(二)

第二種打包方式 Unity提供的BuildAssetBundles API還有一個過載形式,看下面↓↓ public static AssetBundleManifest BuildAssetBu

實力封裝:Unity打包AssetBundle(一)

 說明:這是一系列循序漸進的教程,今天先介紹最簡單的AssetBundle打包方式。 這是一個由在Unity中需要載入模型而引發出來的一系列坑,為了填坑花了不少時間,如果有需要在Unity中自定義選

小談——讀取web資源文件的方式和路徑問題

put mage 文件 ons 控制臺 文件的 web doget web-inf 讀取web資源文件的方式 a): 采用servletContext對象獲得.   優點: 任意文件,任意路徑都可獲得   缺點: 必須在web環境下 // 拿到全局對象