Ejemplo n.º 1
0
 // 2. 读取配置文件
 private void ReadConfiger(string sceneName)
 {
     if (!loadManager.ContainsKey(sceneName))
     {
         ABSceneManager sceneManager = new ABSceneManager(sceneName);
         sceneManager.ReadConfig(sceneName);
         loadManager.Add(sceneName, sceneManager);
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// 这个AB包是否加载完成
    /// </summary>
    public bool IsLoadingFinished(string sceneName, string fileName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName);
            return(false);
        }

        ABSceneManager abScene = loadManager[sceneName];

        return(abScene.IsLoadingFinished(fileName));
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 是否加载过这个AB包
    /// </summary>
    public bool IsLoadedAssetBundle(string sceneName, string fileName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.Log("没有加载过这个场景 : " + sceneName);
            return(false);
        }

        ABSceneManager abScene = loadManager[sceneName];

        return(abScene.IsLoadedAssetBundle(fileName));
    }
Ejemplo n.º 4
0
    // 加载AB包的回调
    private void LoadCompeleteCallBack(string sceneName, string bundleName)
    {
        if (!loadManager.ContainsKey(sceneName))         // 这里 字典里是一定要有的,不然就是哪里出错了
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName + ", That Not Allowed");
            return;
        }

        ABSceneManager tmpManager = loadManager[sceneName];

        StartCoroutine(tmpManager.LoadAssetBundle(bundleName));         // 开启协程,加载AB包
    }
Ejemplo n.º 5
0
    // 3.加载AssetBundle包
    /// <summary>
    /// 加载AssetBundle包
    /// </summary>
    public void LoadAssetBundle(string sceneName, string fileName, LoadProgress lp)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.Log("loadManager Not Contains Key :  " + sceneName + ", ReadConfiger first");
            ReadConfiger(sceneName);             // 读取配置文件,然后存到 loadManager 里
        }

        ABSceneManager abScene = loadManager[sceneName];

        abScene.LoadAB(fileName, lp, LoadCompeleteCallBack);
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 获取这个AB包下的所有资源名
    /// </summary>
    /// <param name="sceneName">场景名</param>
    /// <param name="bundleName">场景下的文件夹名</param>
    public void GetAllAssetNames(string sceneName, string bundleName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName);
            return;
        }

        ABSceneManager tmpManager = loadManager[sceneName];

        tmpManager.GetAllAssetNames(bundleName);
    }
Ejemplo n.º 7
0
    /// <summary>
    /// 释放单个AB包
    /// </summary>
    /// <param name="sceneName">场景名</param>
    /// <param name="fileName">场景下的文件夹名</param>
    public void Dispose(string sceneName, string fileName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName);
            return;
        }

        ABSceneManager tmpManager = loadManager[sceneName];

        tmpManager.Dispose(fileName);
    }
Ejemplo n.º 8
0
    /// <summary>
    /// 释放所有资源(当前场景名下的 所有AB包里的所有资源)
    /// </summary>
    /// <param name="sceneName">场景名</param>
    public void UnloadAsset(string sceneName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName);
            return;
        }

        ABSceneManager tmpManager = loadManager[sceneName];

        tmpManager.UnloadAsset();
    }
Ejemplo n.º 9
0
    /// <summary>
    /// 加载多个资源
    /// </summary>
    /// <param name="sceneName">场景名</param>
    /// <param name="fileName">场景下的文件夹名</param>
    /// <param name="assetName">资源名</param>
    /// <returns></returns>
    public Object[] LoadAssetWithSubAssets(string sceneName, string fileName, string assetName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName);
            return(null);
        }

        ABSceneManager tmpManager = loadManager[sceneName];

        return(tmpManager.LoadAssetWithSubAssets(fileName, assetName));
    }
Ejemplo n.º 10
0
    /// <summary>
    /// 获取包名
    /// </summary>
    /// <param name="sceneName"></param>
    /// <param name="fileName"></param>
    /// <returns></returns>
    public string GetBundleName(string sceneName, string fileName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName);
            return(null);
        }

        ABSceneManager tmpSceneManager = loadManager[sceneName];

        return(tmpSceneManager.GetBundleName(fileName));
    }
Ejemplo n.º 11
0
    /// <summary>
    /// 释放所有AB包和资源
    /// </summary>
    /// <param name="sceneName">场景名</param>
    public void ReleaseAllBundleAndAssets(string sceneName)
    {
        if (!loadManager.ContainsKey(sceneName))
        {
            Debug.LogError("The LoadManager Not Contains Key :  " + sceneName);
            return;
        }

        ABSceneManager tmpManager = loadManager[sceneName];

        tmpManager.ReleaseAllBundleAndAssets();
        System.GC.Collect();
    }