//-------------------------------------------------------------------------
    public void _asyncLoadAsset(_eAsyncAssetLoadType async_assetloadtype,
                                string asset_path, string asset_name,
                                Action <UnityEngine.Object> loaded_action, AsyncAssetLoadGroup group)
    {
        IAsyncAssetLoader asynce_assetloader = null;

        mMapIAsyncAssetLoader.TryGetValue(asset_path, out asynce_assetloader);
        if (asynce_assetloader == null)
        {
            switch (async_assetloadtype)
            {
            case _eAsyncAssetLoadType.WWW:
                asynce_assetloader = new WWWAsyncAssetLoader(this);
                break;

            case _eAsyncAssetLoadType.LoacalAB:
                asynce_assetloader = new LocalABAsyncAssetLoader(this);
                break;

            default:
                break;
            }
        }

        asynce_assetloader.createAssetLoad(asset_path, asset_name, group, loaded_action);

        mMapIAsyncAssetLoader[asset_path] = asynce_assetloader;
    }
Exemple #2
0
    //-------------------------------------------------------------------------
    public void asyncLoadBundle(string bundle_path, _eAsyncAssetLoadType loader_type, Action <string, AssetBundle> loaded_action)
    {
        AssetBundle asset_bundle = null;

        if (MapAssetBundle.TryGetValue(bundle_path, out asset_bundle))
        {
            loaded_action(bundle_path, asset_bundle);
            return;
        }
        else
        {
            Action <string, AssetBundle> action = null;
            if (!MapLoadAssetBundleCallBack.TryGetValue(bundle_path, out action))
            {
                action = loaded_action;
            }
            else
            {
                action += loaded_action;
            }
        }

        if (loader_type == _eAsyncAssetLoadType.LocalBundle)
        {
            AsyncAssetLoaderMgr.LocalBundleAsyncLoader.getAssetBundle(bundle_path, _loadAssetBundleCallBack);
        }
        else if (loader_type == _eAsyncAssetLoadType.WWWBundle)
        {
            AsyncAssetLoaderMgr.WWWBundleAsyncLoader.getAssetBundle(bundle_path, _loadAssetBundleCallBack);
        }

        //return null;
    }
Exemple #3
0
    //-------------------------------------------------------------------------
    public LoaderTicket asyncLoadAsset(string bundle_path, string asset_name, _eAsyncAssetLoadType loader_type,
                                       Action <LoaderTicket, string, UnityEngine.Object> loaded_action)
    {
        LoaderTicket tick = null;

        if (loader_type == _eAsyncAssetLoadType.LocalBundleAsset || loader_type == _eAsyncAssetLoadType.LocalRawAsset)
        {
            tick = AsyncAssetLoaderMgr.LocalAssetAsyncLoader.getAsset(bundle_path, asset_name, loader_type, loaded_action);
        }
        else if (loader_type == _eAsyncAssetLoadType.WWWBundleAsset || loader_type == _eAsyncAssetLoadType.WWWRawAsset)
        {
            tick = AsyncAssetLoaderMgr.WWWAssetAsyncLoader.getAsset(bundle_path, asset_name, loader_type, loaded_action);
        }

        return(tick);
    }
    //-------------------------------------------------------------------------
    public LoaderTicket getAsset(string asset_path, string asset_name, _eAsyncAssetLoadType loader_type,
                                 Action <LoaderTicket, string, UnityEngine.Object> bundle_asset_callback)
    {
        LoaderTicket loader_ticket = null;

        UnityEngine.Object bundle_asset = null;
        string             asset_key    = asset_path + asset_name;

        if (MapBundleAsset.TryGetValue(asset_key, out bundle_asset))
        {
            bundle_asset_callback(loader_ticket, asset_key, bundle_asset);
        }
        else
        {
            if (loader_type == _eAsyncAssetLoadType.LocalBundleAsset)
            {
                if (MapBundle.ContainsKey(asset_path))
                {
                    var asset_bundle = MapBundle[asset_path];
                    bundle_asset = asset_bundle.LoadAsset(asset_name);
                    bundle_asset_callback(loader_ticket, asset_key, bundle_asset);
                }
                else
                {
                    loader_ticket = AsyncAssetLoaderMgr.LocalBundleAsyncLoader.getAssetBundle(asset_path, _loadAssetBundleCallBack);
                }
            }
            else
            {
                loader_ticket = AsyncAssetLoaderMgr.WWWAsyncLoader.getIsDoneWWW(asset_path, _loadAssetWWWCallBack);
            }

            if (loader_ticket != null)
            {
                loader_ticket.UserData = asset_name;
                Dictionary <LoaderTicket, Action <LoaderTicket, string, UnityEngine.Object> > map_ticketandcallback = null;
                if (!MapLoaderTicketAndCallBack.TryGetValue(asset_path, out map_ticketandcallback))
                {
                    map_ticketandcallback = new Dictionary <LoaderTicket, Action <LoaderTicket, string, UnityEngine.Object> >();
                    MapLoaderTicketAndCallBack[asset_path] = map_ticketandcallback;
                }
                map_ticketandcallback[loader_ticket] = bundle_asset_callback;
            }
        }

        return(loader_ticket);
    }
Exemple #5
0
    //-------------------------------------------------------------------------
    public LoaderTicket asyncLoadLocalBundle(List <string> list_bundle_path, _eAsyncAssetLoadType loader_type,
                                             Action <List <AssetBundle> > loaded_action)
    {
        LoaderTicket loader_ticket = new LoaderTicket();
        Dictionary <string, AssetBundle> map_needloadab = new Dictionary <string, AssetBundle>();

        loader_ticket.MapNeedLoadAssetBundle = map_needloadab;
        Dictionary <string, AssetBundle> map_loadedab = new Dictionary <string, AssetBundle>();

        loader_ticket.MapLoadedAssetBundle = map_loadedab;
        foreach (var i in list_bundle_path)
        {
            AssetBundle asset_bundle = null;
            if (MapAssetBundle.TryGetValue(i, out asset_bundle))
            {
                map_loadedab[i] = asset_bundle;
            }
            else
            {
                map_needloadab[i] = null;
                if (loader_type == _eAsyncAssetLoadType.LocalBundle)
                {
                    AsyncAssetLoaderMgr.LocalBundleAsyncLoader.getAssetBundle(i, _loadAssetBundleCallBack);
                }
                else if (loader_type == _eAsyncAssetLoadType.WWWBundle)
                {
                    AsyncAssetLoaderMgr.WWWBundleAsyncLoader.getAssetBundle(i, _loadAssetBundleCallBack);
                }
            }
        }

        if (loader_ticket.MapLoadedAssetBundle.Count == list_bundle_path.Count)
        {
            List <AssetBundle> list_bundle = new List <AssetBundle>();
            foreach (var i in loader_ticket.MapLoadedAssetBundle)
            {
                list_bundle.Add(i.Value);
            }
            loaded_action(list_bundle);
        }
        else
        {
            MapLoaderTicket[loader_ticket] = loaded_action;
        }

        return(loader_ticket);
    }