Unity加载AB包

Unity加载AB包

1、导入AB资源包

在这里插入图片描述

2、打开操作面板

在这里插入图片描述

3、代码加载场景

using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;

public class LoadAB : MonoBehaviour
{
    AssetBundle ab;
    private string abPath = "路径";
    public Slider ab_slider;
    public TextMeshProUGUI ab_text;
    IEnumerator Start()
    {
        string path = Application.streamingAssetsPath + "/" + abPath;//ab包路径
        using (UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(path))
        {
            request.SendWebRequest();
            while (ab_slider.value <= 0.99)
            {
                ab_slider.value = Mathf.Lerp(ab_slider.value, request.downloadProgress, Time.deltaTime);
                ab_text.text = (int)(ab_slider.value * 100) + "%";
                yield return null;
            }
            if (request.isDone)
            {
                ab_text.text = 100 + "%";
            }
            ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle;
            if (ab == null)
            {
                Debug.LogError("AB包为空");
                yield break;
            }
        }
        ab_slider.gameObject.SetActive(false);
       // GameObject ab_obj = Instantiate(ab.LoadAsset<GameObject>("妇好鸮尊"));
        SceneManager.LoadScene("场景名");//加载场景AB包
    }
}

4、代码加载预制体

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.SceneManagement;

public class LoadAB_Prefabs : MonoBehaviour
{
    AssetBundle ab;
    private string abPath = "路径";
    IEnumerator Start()
    {
        string path = Application.streamingAssetsPath + "/" + abPath;//ab包路径
        using (UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(path))
        {
            request.SendWebRequest();
            while (request.downloadProgress <= 0.99)
            {
                yield return null;
            }
            if (request.isDone)
            {
                ab = (request.downloadHandler as DownloadHandlerAssetBundle).assetBundle;
                if (ab == null)
                {
                    Debug.LogError("AB包为空");
                    yield break;
                }
            }
        }
         GameObject ab_obj = Instantiate(ab.LoadAsset<GameObject>("预制体名"));
      //  SceneManager.LoadScene(abPath);//加载场景AB包
    }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ke-Di

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值