动态加载(Dynamic Load)(二)

1.加载AB资源

(1)将所有的预设体和材质球和图片的AssetBundle设为None,然后吧Cube1的AssetBundle设为cube1

动态加载(Dynamic Load)(二)_第1张图片
动态加载(Dynamic Load)(二)_第2张图片

(2)创建脚本LoadTest

动态加载(Dynamic Load)(二)_第3张图片

<1>引用UnityEngine;

类:MonoBehaviour、Application、AssetBundle、GameObject、AssetBundleCreateRequest、AssetBundleRequest、WWW、AssetBundleManifest、Hash128

1)MonoBehaviour

1.1)开始一段协程:StartCoroutine(方法名字,方法参数值)

1.2)打印对象:print(对象)

1.3)克隆:Instantiate(对象)

2)Application

2.1)Unity工程目录下的Assets文件夹路径:类名.dataPath

3)AssetBundle

3.1)加载得到AB:类名.LoadFromFile(路径)

3.2)加载AB中指定的资源对象:对象.LoadAsset<类型>(资源对象名字);

3.3)加载AB中的所有资源对象:对象.LoadAllAssets<类型>();

3.4)卸载AB:对象.Unload(false);

3.5)直接异步加载资源的绝对路径:类名.LoadFromFileAsync(路径);

3.6)异步加载所有对象:对象.LoadAllAssetAsync<类型>();

4)GameObject

5)AssetBundleCreateRequest

5.1)转换成AB类型:对象.assetBundle

6)AssetBundleRequest

6.1)得到资源对象:对象.asset

7)WWW

7.1)加载路径资源:类名(路径);

本地路径:在路径前加"file://"

网络路径:网络地址

7.2)得到对象的AB:对象.assetBundle

7.3)销毁对象:对象.Dispose();

7.4)从缓存中加载或者下载:类名.LoadFromCachOrDownload(路径,版本号);

会根据资源的版本号或者HashID判断是否存在此资源,如果存在则从缓存中加载,如果不存在则下载

8)AssetBundleManifest

8.1)加载单个资源:类名 对象=AB对象.LoadAsset<类名>("AssetBundleManifest");

后面的“AssetBundleManifest”是固定写法

8.2)加载全部资源:AB对象.LoadAllAssets<类名>();

8.3)AssetBundleManifest[]

8.3.1)数组长度:对象.Length

8.3.2)得到该对象的该索引元素中的所有AB名字:对象[索引].GetAllAssetBundle();

8.3.3)得到该对象的该索引元素中的所有HashID:对象[索引].GetAssetBundle Hash(AB的名字);

9)Hash128

(3)注意事项

<1>代码中的路径对应打包AB的存放路径

动态加载(Dynamic Load)(二)_第4张图片

<2>代码中的AB资源绝对路径对应AB资源的绝对路径,同时“/cube1”也代表的是打包时AssetBundle名字中的路径

动态加载(Dynamic Load)(二)_第5张图片
动态加载(Dynamic Load)(二)_第6张图片
一般Unity编辑器会自动隐藏后缀名,但我这里没写后缀名所以直接就是它
动态加载(Dynamic Load)(二)_第7张图片
可以右击点开Show in Exploer查看后缀名

<3>代码中记载的对象资源名对应编辑器中的预设体名字

(4)创建脚本LoadTT

以下代码是上一个脚本的升级版,用到是方法几乎还是那些东西,只不过复杂一些,不过换汤不换药

动态加载(Dynamic Load)(二)_第8张图片

最后:经过以上两个部分的内容,动态加载的第二部分内容就到这了,当然了,以上都是基础,但是基础还是很重要的,简单的东西学好了,复杂的东西也就变的简单了,再难不也是从简单开始的么?加油

你可能感兴趣的:(动态加载(Dynamic Load)(二))