//------------------------------------------------------------------------- public override void createAssetLoad(string asset_path, string asset_name, AsyncAssetLoadGroup async_assetloadgroup, Action <UnityEngine.Object> loaded_action) { AssetPath = asset_path; RequestLoadAssetInfo request_loadassetinfo = new RequestLoadAssetInfo(); request_loadassetinfo.AssetName = asset_name; request_loadassetinfo.LoadedAction = loaded_action; List <RequestLoadAssetInfo> list_requestloadasssetinfo = null; MapRequestLoadAssetInfo.TryGetValue(async_assetloadgroup, out list_requestloadasssetinfo); if (list_requestloadasssetinfo == null) { list_requestloadasssetinfo = new List <RequestLoadAssetInfo>(); } list_requestloadasssetinfo.Add(request_loadassetinfo); MapRequestLoadAssetInfo[async_assetloadgroup] = list_requestloadasssetinfo; if (mAssetBundleCreateRequest == null) { mAssetBundleCreateRequest = AssetBundle.LoadFromFileAsync(asset_path); } }
//------------------------------------------------------------------------- internal override void assetLoadDone() { bool must_copyasset = false; if (MapRequestLoadAssetInfo.Count > 1) { must_copyasset = true; } AssetBundle ab = mAssetBundleCreateRequest.assetBundle; foreach (var i in MapRequestLoadAssetInfo) { if (i.Key.IsCancel) { continue; } foreach (var asset_loadrequest in i.Value) { UnityEngine.Object load_asset = ab.LoadAsset(asset_loadrequest.AssetName); if (must_copyasset) { asset_loadrequest.LoadedAction(GameObject.Instantiate(load_asset)); } else { asset_loadrequest.LoadedAction(load_asset); } } } MapRequestLoadAssetInfo.Clear(); destory(); }
//------------------------------------------------------------------------- internal override void assetLoadDone() { bool must_copyasset = false; if (MapRequestLoadAssetInfo.Count > 1) { must_copyasset = true; } foreach (var i in MapRequestLoadAssetInfo) { if (i.Key.IsCancel) { continue; } foreach (var asset_loadrequest in i.Value) { UnityEngine.Object load_asset = null; if (mAsyncAssetWWW.texture != null) { load_asset = mAsyncAssetWWW.texture; } else if (mAsyncAssetWWW.audioClip != null) { load_asset = mAsyncAssetWWW.audioClip; } else if (mAsyncAssetWWW.assetBundle != null) { load_asset = mAsyncAssetWWW.assetBundle; } if (must_copyasset) { asset_loadrequest.LoadedAction(GameObject.Instantiate(load_asset)); } else { asset_loadrequest.LoadedAction(load_asset); } } } MapRequestLoadAssetInfo.Clear(); destory(); }