//------------------------------------------------------------------------- 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); } } }
//------------------------------------------------------------------------- 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); } } }