bwin3099必赢亚洲 最新软件 收费软件 绿色软件

网络资源 软件专题

您的地位:bwin3099必赢亚洲_绿色收费必赢国际登录网站 > 网络资源 > 软件教程 > 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需求加载运用的时分,把该模子的一切依赖的小资源都加载起来,然后依据依赖干系组装,就变回了我们看到的资源了。

细致内容

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是什么?)  
内存巨细:在WWW的根底上添加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(@"http://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 = @"http://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
链接: http://pan.baidu.com/s/1OQS1DlDBtreCAA4nBOpWeA 提取码: mnqh

Unity Asset Bundle 3 – September 2019
链接: http://pan.baidu.com/s/1ApZkx25phnT96DPtug4WWQ 提取码: q7qj
Unity Asset Bundle 4 – May 2019
链接: http://pan.baidu.com/s/1Jigr5xPRDVFMAZXFeOqfpw 提取码: 1n4s
解压暗码 -0daydown

Unity Asset Bundle 5 – July 2019

链接: http://pan.baidu.com/s/1OTIM1iEn8dGy1BsWN9d7eg 提取码: iavc

本文地点:http://www.nbzcsb.com/mf/2018/0615/223677.html
《Unity Asset Bundle 2/3/4/5 October 2019 最新版 含加载办法》由bwin3099必赢亚洲整理并公布,欢送转载!

本周热门
本月热门
关于本站 - 网站协助 - 告白协作 - 下载声明 - 友谊衔接 - 网站地图 - 网站标签-香港效劳器 -群英
有任何意见或许发起请联络邮箱:858898909[at]qq.com 本站局部内容搜集于互联网,假如有侵权内容、不当之处,请联络我们删除。敬请体谅!
Copyright © 2012 nbzcsb.com. All Rights Reserved 豫ICP备12021367号 豫公网安备 41019702002546号bwin3099必赢亚洲