第五人格先知被黄衣啪到哭 最新軟件 免費軟件 綠色軟件

網絡資源 軟件專題

第五人格先知被黄衣啪到哭
您的位置:第五人格先知被黄衣啪到哭 > 網絡資源 > 軟件教程 > Unity Asset Bundle 2/3/4/5 October 2019 最新版 含加載方法

第五人格旁观者天赋谁用:Unity Asset Bundle 2/3/4/5 October 2019 最新版 含加載方法

軟件教程 發布日期:2019-10-15  瀏覽: 次 網友評論
AssetBundles是由 Unity 編輯器在編輯環境中(enit-time)創建的一些列的文件,這些文件可以被用在項目的運行環境中(run-time)。 AssetBundles 可以包括的資源文件有模型文件(models)、材質(materials)、紋理(textures)和場景(scenes)。AssetBundles 不能包含腳本文件。具體來說,一個 AssetBundle 就是把一系列的資源文件或者場景文件以某種方式緊密保存的一個文件。這個 AssetBundle 文件可以被單獨加載到可執行的應用程序中。AssetBundles 可以由被 Unity 構建的游戲或者應用按需加載使用。這允許對像模型、紋理、音頻、甚至是整個的游戲場景這樣的資源進行流式加載和異步加載。AssetBundles 可以預緩存(pre-cached)和存儲在本地,這樣在運行時就可以立即加載它們。但是 AssetBundles 技術的主要的目的是在需要的時候能夠從遠端的服務器上按需請求特定的資源,并加載到游戲中。AssetBundles 可以包含 Unity 可以識別的任何類型的資源,包括自定義的二進制數據。唯一的例外是,腳本資源是不被允許的。

什么是AssetBundle  

估計很多人只知道Unity的模型之類的東西可以導出成一種叫做AssetBundle的文件,然后打包后可以在Unity程序運行的時候再加載回來用。  
那么AssetBundle是一個什么樣的東西呢?其實AssetBundle只是一種使用LZMA壓縮方式壓縮的資源文件。具體LZMA是什么請百度,你可以理解成就是一種壓縮文件就行了,至于它的后綴名是什么,一點關系都沒有,你可以自己定。  
AssetBundle打包的時候,你可以指定一個mainAsset,那么加載完之后就可以通過AssetBundle.mainAsset來獲取到了。你也可以不指定mainAsset,直接打包一堆內容進去,然后加載后通過AssetBundle.LoadAsset指定名字的讀取出來。  
在資源之間,存在著依賴的關系。你可以把資源拆分得很細,比如一個模型,由網格模型、材質、貼圖構成,你可以把每一個小部分都拆開,各自打包成壓縮文件。當Unity需要加載使用的時候,把該模型的所有依賴的小資源都加載起來,然后根據依賴關系組裝,就變回了我們看到的資源了。

第五人格先知被黄衣啪到哭 www.nrpah.icu 詳細內容

Includes:

All Settings Pro v1.0.5.unitypackage
Blend Modes v3.4.unitypackage
Crosshair Assembler 1.1.0.unitypackage
DDA Fog 1.02.unitypackage
Distortion Shader Pack 1.3.unitypackage
Exploder 1.7.8.unitypackage
Fantasy Skybox.unitypackage
Lyme 1.0.unitypackage
Mobile City Pack 1.1.unitypackage
Mobile City Pack 1.2.unitypackage
Stylized Forest 1.2.unitypackage
Toon Soldiers v2.0.unitypackage
UniStorm – Dynamic Modular Weather v3.0.1.1.unitypackage
Vistas v3.0.unitypackage
Vistas v4.0.unitypackage
Volumetric Light Beam v1.60.unitypackage
Pixel Platformer Engine – Responsive 2d Platformer Toolkit 1.1.zip
Stylized Low-Poly Nature _et v2.0.zip
Universal WebGL Template 1.2.1.zip

加載方法

大致經歷以下過程  
WWW  
AssetBundle  
Asset  
WWW  
加載:通過url加載  
內存大?。? 
壓縮資源:翻倍(為什么會得出翻倍?)  
非壓縮:幾乎相同  
內存對象:WebStream  
AssetBundle  
加載:隨著WWW加載,第一次訪問的時候會在內存生成一個SerializeFile,內存也會跟著增加0.4M左右(這個0.4M是什么?)  
內存大?。涸赪WW的基礎上增加0.4M(非固定)  
內存對象:SerializeFile(archive/Cab-XXXX)  
Asset  
加載:AssetBundle.LoadAsset  
相關的腳本,shader,Asset,Transform,GameObject都會被加載進來,存放在內存的Asset下  
大?。和暾笮?,(會對相關的資源進行一次解壓)

Unity加載AssetBundle的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.Networking;
 
public class DownLoad : MonoBehaviour
{
    IEnumerator Start()
    {
        //資源包路徑
        string path1 = "AssetBundles/cubewall.unity3d";
        //共享依賴資源包路徑
        string path2 = "AssetBundles/share.unity3d";
 
        //第一種加載AB的方式 ,從內存中加載 LoadFromMemory
 
        #region
 
        //方法一:異步加載
        //加載資源
        AssetBundleCreateRequest request = AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(path1));
        yield return request;
        //加載共同依賴資源,如貼圖、材質
        AssetBundleCreateRequest request2 = AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(path2));
        yield return request2;
        AssetBundle ab = request.assetBundle;
        AssetBundle ab2 = request2.assetBundle;
 
        //使用里面的資源
        GameObject wallPrefab1 = (GameObject) ab.LoadAsset("CubeWall");
        Instantiate(wallPrefab1);
 
        //方法二:同步加載(無需用協程)
        //加載資源
        AssetBundle ab3 = AssetBundle.LoadFromMemory(File.ReadAllBytes(path1));
        //加載共同依賴資源,如貼圖、材質
        AssetBundle ab4 = AssetBundle.LoadFromMemory(File.ReadAllBytes(path2));
 
        //使用里面的資源
        GameObject wallPrefab2 = (GameObject) ab.LoadAsset("CubeWall");
        Instantiate(wallPrefab2);
 
        #endregion
 
 
        //第二種加載AB的方式 ,從本地加載 LoadFromFile(無需用協程)
 
        #region
 
        AssetBundle ab5 = AssetBundle.LoadFromFile(path1);
        AssetBundle ab6 = AssetBundle.LoadFromFile(path2);
 
        GameObject wallPrefab3 = (GameObject) ab5.LoadAsset("CubeWall");
        Instantiate(wallPrefab3);
 
        #endregion
 
        //第三種加載AB的方式 ,從本地或服務器加載 WWW(將被棄用)
 
        #region
 
        //是否準備好
        while (Caching.ready == false)
        {
            yield return null;
        }
        //從本地加載
        //WWW www = WWW.LoadFromCacheOrDownload(@"file:/E:AssetBundleProject\AssetBundleProject\AssetBundles", 1);
        //從服務器加載
        WWW www = WWW.LoadFromCacheOrDownload(@"//localhost/AssetBundles/cubewall.unity3d", 1);
        yield return www;
        //是否報錯
        if (string.IsNullOrEmpty(www.error) == false)
        {
            Debug.Log(www.error);
            yield break;
        }
        AssetBundle ab7 = www.assetBundle;
 
        //使用里面的資源
        GameObject wallPrefab4 = (GameObject) ab7.LoadAsset("CubeWall");
        Instantiate(wallPrefab4);
 
        #endregion
 
        //第四種加載AB方式 從服務器端下載 UnityWebRequest(新版Unity使用)
 
        #region
 
        //服務器路徑 localhost為IP
        string uri = @"//localhost/AssetBundles/cubewall.unity3d";
        UnityWebRequest request3 = UnityWebRequest.GetAssetBundle(uri);
        yield return request3.Send();
 
        //AssetBundle ab8 = ((DownloadHandlerAssetBundle)request3.downloadHandler).assetBundle;
        AssetBundle ab8 = DownloadHandlerAssetBundle.GetContent(request3);
 
        //使用里面的資源
        GameObject wallPrefab5 = (GameObject) ab8.LoadAsset("CubeWall");
        Instantiate(wallPrefab5);
 
        //加載cubewall.unity3d資源包所依賴的資源包
        AssetBundle manifestAB = AssetBundle.LoadFromFile("AssetBundles/AssetBundles");
        AssetBundleManifest manifest = (AssetBundleManifest) manifestAB.LoadAsset("AssetBundleManifest");
 
        //foreach(string name in manifest.GetAllAssetBundles())
        //{
        //    print(name);
        //}
 
        //cubewall.unity3d資源包所依賴的資源包的名字
        string[] strs = manifest.GetAllDependencies("cubewall.unity3d");
        foreach (string name in strs)
        {
            AssetBundle.LoadFromFile("AssetBundles/" + name);
        }
 
        #endregion
    }
}

Unity Asset Bundle 2 – October
鏈接: https://pan.baidu.com/s/1OQS1DlDBtreCAA4nBOpWeA 提取碼: mnqh

Unity Asset Bundle 3 – September 2019
鏈接: https://pan.baidu.com/s/1ApZkx25phnT96DPtug4WWQ 提取碼: q7qj
Unity Asset Bundle 4 – May 2019
鏈接: https://pan.baidu.com/s/1Jigr5xPRDVFMAZXFeOqfpw 提取碼: 1n4s
解壓密碼 -0daydown

Unity Asset Bundle 5 – July 2019

鏈接: https://pan.baidu.com/s/1OTIM1iEn8dGy1BsWN9d7eg 提取碼: iavc

本文地址://www.nrpah.icu/mf/2018/0615/223677.html
《Unity Asset Bundle 2/3/4/5 October 2019 最新版 含加載方法》由第五人格先知被黄衣啪到哭整理并發布,歡迎轉載!

本周熱點
本月熱點
有任何意見或者建議請聯系郵箱:858898909[at]qq.com 本站部分內容收集于互聯網,如果有侵權內容、不妥之處,請聯系我們刪除。敬請諒解!
Copyright © 2012 www.nrpah.icu. All Rights Reserved 豫ICP備12021367號 豫公網安備 41019702002546號第五人格先知被黄衣啪到哭