コード例 #1
0
    /// <summary>
    /// 创建一个场景对应的包
    /// </summary>
    /// <param name="sceneName"></param>
    private void createSceneAssetBundles(string sceneName)
    {
        AssetBundleSceneManager scene = new AssetBundleSceneManager(sceneName);

        //读取记录文件
        scene.ReadRecord(sceneName);

        nameSceneDict.Add(sceneName, scene);
    }
コード例 #2
0
    /// <summary>
    /// 加载场景
    /// </summary>
    /// <param name="sceneName"></param>
    /// <param name="folderName"></param>
    /// <param name="lp"></param>
    public void LoadSceneAssetBundle(string sceneName, string folderName, LoadProgress lp)
    {
        if (!nameSceneDict.ContainsKey(sceneName))
        {
            //如果没有这个场景 先创建这个场景 再读取一下
            createSceneAssetBundles(sceneName);
        }
        AssetBundleSceneManager sceneManager = nameSceneDict[sceneName];

        //开始加载
        sceneManager.LoadAssetBundle(folderName, lp, loadAssetBundleCallback);
    }
コード例 #3
0
    /// <summary>
    /// 加载资源包的回调
    /// </summary>
    /// <param name="sceneName"></param>
    /// <param name="bundleName"></param>
    private void loadAssetBundleCallback(string sceneName, string bundleName)
    {
        if (nameSceneDict.ContainsKey(sceneName))
        {
            AssetBundleSceneManager sceneManager = nameSceneDict[sceneName];

            StartCoroutine(sceneManager.Load(bundleName));
        }
        else
        {
            Debug.LogError("不存在这个场景 : " + sceneName);
        }
    }
コード例 #4
0
    /// <summary>
    /// 调试专用
    /// </summary>
    public void GetAllAssetNames(string sceneName, string folderName)
    {
        if (nameSceneDict.ContainsKey(sceneName))
        {
            AssetBundleSceneManager sceneManager = nameSceneDict[sceneName];

            sceneManager.GetAllAssetNames(folderName);
        }
        else
        {
            Debug.LogError("不存在这个场景 : " + sceneName);
        }
    }
コード例 #5
0
    /// <summary>
    ///  卸载所有包和资源
    /// </summary>
    public void DisposeAndUnLoadAll(string sceneName)
    {
        if (nameSceneDict.ContainsKey(sceneName))
        {
            AssetBundleSceneManager sceneManager = nameSceneDict[sceneName];

            sceneManager.DisposeAndUnLoadAll();
        }
        else
        {
            Debug.LogError("不存在这个场景 : " + sceneName);
        }
    }
コード例 #6
0
    /// <summary>
    /// 获取带有子物体的资源
    /// </summary>
    /// <param name="assetName">资源名称</param>
    /// <returns>所有资源</returns>
    public Object[] LoadAssetWithSubAssets(string sceneName, string folderName, string assetName)
    {
        if (nameSceneDict.ContainsKey(sceneName))
        {
            AssetBundleSceneManager sceneManager = nameSceneDict[sceneName];

            return(sceneManager.LoadAssetWithSubAssets(folderName, assetName));
        }
        else
        {
            Debug.LogError("不存在这个场景 : " + sceneName);
            return(null);
        }
    }
コード例 #7
0
    /// <summary>
    /// 是否加载完成这个包
    /// </summary>
    /// <param name="folderName">文件夹名</param>
    /// <returns></returns>
    public bool IsFinsh(string sceneName, string folderName)
    {
        if (nameSceneDict.ContainsKey(sceneName))
        {
            AssetBundleSceneManager sceneManager = nameSceneDict[sceneName];

            return(sceneManager.IsFinsh(folderName));
        }
        else
        {
            Debug.LogError("不存在这个场景 : " + sceneName);
            return(false);
        }
    }
コード例 #8
0
    /// <summary>
    /// 获取完整包名
    /// </summary>
    public string GetBundleName(string sceneName, string folderName)
    {
        if (nameSceneDict.ContainsKey(sceneName))
        {
            AssetBundleSceneManager sceneManager = nameSceneDict[sceneName];

            return(sceneManager.GetBundleName(folderName));
        }
        else
        {
            Debug.LogError("不存在这个场景 : " + sceneName);
            return(null);
        }
    }