コード例 #1
0
    //-------------------------------------------------------------------------
    void _loadAssetBundleCallBack(string asset_path, AssetBundle asset_bundle)
    {
        if (asset_bundle != null)
        {
            MapBundle[asset_path] = asset_bundle;
            Dictionary <LoaderTicket, Action <LoaderTicket, string, UnityEngine.Object> > map_ticketandcallback = null;
            if (MapLoaderTicketAndCallBack.TryGetValue(asset_path, out map_ticketandcallback))
            {
                foreach (var ticket in map_ticketandcallback)
                {
                    string asset_name = ticket.Key.UserData;
                    string asset_key  = asset_path + asset_name;
                    var    asset      = asset_bundle.LoadAsset(asset_name);
                    if (!MapBundleAsset.ContainsKey(asset_key))
                    {
                        MapBundleAsset[asset_key] = asset;
                    }

                    ticket.Value(ticket.Key, asset_key, asset);
                }

                map_ticketandcallback.Clear();
                MapLoaderTicketAndCallBack.Remove(asset_path);
            }
        }
    }
コード例 #2
0
    //-------------------------------------------------------------------------
    void _loadAssetWWWCallBack(string asset_path, WWW www)
    {
        if (www != null && www.isDone)
        {
            Dictionary <LoaderTicket, Action <LoaderTicket, string, UnityEngine.Object> > map_ticketandcallback = null;
            if (MapLoaderTicketAndCallBack.TryGetValue(asset_path, out map_ticketandcallback))
            {
                foreach (var ticket in map_ticketandcallback)
                {
                    string             asset_name = ticket.Key.UserData;
                    string             asset_key  = asset_path + asset_name;
                    UnityEngine.Object load_asset = null;
                    if (!MapBundleAsset.ContainsKey(asset_key))
                    {
                        if (string.IsNullOrEmpty(www.error))
                        {
                            if (www.texture != null)
                            {
                                load_asset = www.texture;
                            }
                            else if (www.GetAudioClip() != null)
                            {
                                load_asset = www.GetAudioClip();
                            }
                            else if (www.assetBundle != null)
                            {
                                load_asset = www.assetBundle;
                            }
                            MapBundleAsset[asset_key] = load_asset;
                        }
                    }

                    MapBundleAsset.TryGetValue(asset_key, out load_asset);
                    ticket.Value(ticket.Key, asset_key, load_asset);
                }

                map_ticketandcallback.Clear();
                MapLoaderTicketAndCallBack.Remove(asset_path);
            }
        }
    }