예제 #1
0
    /// <summary>
    /// 异步加载一个依赖包
    /// </summary>
    /// <param name="relyBundleName"></param>
    /// <param name="callBack"></param>
    public static void LoadRelyBundleAsync(string relyBundleName, RelyBundleLoadCallBack callBack)
    {
        if (s_relyBundle.ContainsKey(relyBundleName))
        {
            RelyBundle tmp = s_relyBundle[relyBundleName];
            tmp.relyCount++;

            callBack(LoadState.CompleteState, tmp);
        }
        else
        {
            //先占位,避免重复加载
            s_relyBundle.Add(relyBundleName, null);

            ResourcesConfig configTmp = ResourcesConfigManager.GetRelyBundleConfig(relyBundleName);
            string          path      = GetBundlePath(configTmp);

            ResourceIOTool.AssetsBundleLoadAsync(path, (LoadState state, AssetBundle bundle) =>
            {
                if (!state.isDone)
                {
                    callBack(state, null);
                }
                else
                {
                    callBack(state, AddRelyBundle(relyBundleName, bundle));
                }
            });
        }
    }
예제 #2
0
    //加载一个依赖包
    public static RelyBundle LoadRelyBundle(string relyBundleName)
    {
        RelyBundle tmp = null;

        if (s_relyBundle.ContainsKey(relyBundleName))
        {
            tmp = s_relyBundle[relyBundleName];
            tmp.relyCount++;
        }
        else
        {
            ResourcesConfig configTmp = ResourcesConfigManager.GetRelyBundleConfig(relyBundleName);
            string          path      = GetBundlePath(configTmp);
            tmp = AddRelyBundle(relyBundleName, AssetBundle.LoadFromFile(path));
        }

        return(tmp);
    }
예제 #3
0
    static RelyBundle AddRelyBundle(string relyBundleName, AssetBundle aess)
    {
        RelyBundle tmp = new RelyBundle();

        tmp.relyCount = 1;
        tmp.bundle    = aess;

        if (s_relyBundle.ContainsKey(relyBundleName))
        {
            s_relyBundle[relyBundleName] = tmp;
        }
        else
        {
            s_relyBundle.Add(relyBundleName, tmp);
        }

        if (tmp.bundle == null)
        {
            Debug.LogError("AddRelyBundle: " + relyBundleName + " dont exist!");
        }


        return(tmp);
    }