@unityTOC
使用的unity版本是2021.3.8f1c1
1.将Asset Bundle Browser 导入场景,Window->PackageManager
2.
打开 Window->Asset Bundle Browser,把要加载的场景拖进来3.点击Build
4.AB包位置
5.建StreamingAssets文件夹,把myscene塞进去
6.创建脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class BtnManager : MonoBehaviour
{
[HideInInspector]public Button jumpSceneBtn;
[HideInInspector] public string assetBundleName;
[HideInInspector] public string sceneBName;
void Start()
{
jumpSceneBtn = this.GetComponent<Button>();
jumpSceneBtn.onClick.AddListener(() => {
LoadAndOpenSceneB();
});
}
private void LoadAndOpenSceneB()
{
StartCoroutine(LoadSceneBAsync());
}
private IEnumerator LoadSceneBAsync()
{
string streamingAssetsPath = Application.streamingAssetsPath;
string assetBundlePath = $"{streamingAssetsPath}/{assetBundleName}";
// 加载AB包
var assetBundleRequest = AssetBundle.LoadFromFileAsync(assetBundlePath);
yield return assetBundleRequest;
if (assetBundleRequest.assetBundle != null)
{
// 异步加载场景B
var sceneLoadRequest = SceneManager.LoadSceneAsync(sceneBName);
yield return sceneLoadRequest;
if (sceneLoadRequest.isDone)
{
// 获取加载的场景B
Scene loadedScene = SceneManager.GetSceneByName(sceneBName);
// 跳转到加载完成的场景B
SceneManager.SetActiveScene(loadedScene);
}
// 卸载AB包
assetBundleRequest.assetBundle.Unload(false);
}
}
}
运行点击按钮就可以加载场景了