加载cube包里的cube物体
StartCoroutine(LoadABAsync("cube", "cube"));
加载image包里的a图片
StartCoroutine(LoadABAsync2("image", "a"));
/// <summary>
/// 异步加载AB包里的物体
/// </summary>
/// <param name="ABPackageName">包名</param>
/// <param name="GameObjectName">包物体名</param>
/// <param name="type">目标资源类型</param>
/// <returns></returns>
private IEnumerator LoadABAsync(string ABPackageName, string GameObjectName)
{
AssetBundleCreateRequest ab = AssetBundle.LoadFromFileAsync(Application.streamingAssetsPath + "/" + ABPackageName);
yield return ab;
//使用泛型的方式进行加载
AssetBundleRequest abr = ab.assetBundle.LoadAssetAsync<GameObject>(GameObjectName);
//使用type的方式进行加载
//AssetBundleRequest abr = ab.assetBundle.LoadAssetAsync(GameObjectName, //typeof(GameObject));
//使用名称的方式进行加载
//AssetBundleRequest abr = ab.assetBundle.LoadAssetAsync(GameObjectName);
yield return abr;
//实例化资源至场景
GameObject gb = abr.asset as GameObject;
GameObject gbInScene = Instantiate(gb);
}
/// <summary>
/// 异步加载AB包里的图片
/// </summary>
/// <param name="ABPackageName">包名</param>
/// <param name="ImageName">包物体名</param>
/// <param name="type"></param>
/// <returns></returns>
private IEnumerator LoadABAsync2(string ABPackageName, string ImageName)
{
AssetBundleCreateRequest assetBundle = AssetBundle.LoadFromFileAsync(Application.streamingAssetsPath + "/" + ABPackageName);
yield return assetBundle;
//使用泛型的方式进行加载
AssetBundleRequest abr = assetBundle.assetBundle.LoadAssetAsync<Sprite>(ImageName);
//使用type的方式进行加载
//AssetBundleRequest abr = //assetBundle.assetBundle.LoadAssetAsync(ImageName, typeof(GameObject));
//仅使用名称的方式进行加载
//AssetBundleRequest abr = //assetBundle.assetBundle.LoadAssetAsync(ImageName);
yield return abr;
Sprite sp = abr.asset as Sprite;
yield return sp;
image.sprite = sp;
}