private void UnloadBundles() { foreach (var dialogVo in _dialogList) { if (string.IsNullOrEmpty(dialogVo.DubbingId) == false) { AssetLoader.UnloadBundle(AssetLoader.GetDubbingById(dialogVo.DubbingId)); } if (string.IsNullOrEmpty(dialogVo.BgMusicId) == false) { AssetLoader.UnloadBundle(AssetLoader.GetBackgrounMusicById(dialogVo.BgMusicId)); } foreach (var key in _bgImageCache.Keys) { AssetManager.Instance.UnloadBundle(AssetLoader.GetStoryBgImage(key)); } foreach (var key in _headImageCache.Keys) { AssetManager.Instance.UnloadBundle(AssetLoader.GetHeadImageById(key)); } foreach (var key in _roleImageCache.Keys) { AssetManager.Instance.UnloadBundle(AssetLoader.GetStoryRoleImageById(key)); } } }
public void PreLoadAsset(int index, Action <int> onAssetLoaded) { if (index >= _dialogList.Count) { return; } _onAssetLoaded = onAssetLoaded; _currentIndex = index; _loadCount = 0; IsLoading = true; Texture tex = null; DialogVo vo = _dialogList[index]; if (_bgImageCache.ContainsKey(vo.BgImageId) == false) { tex = ResourceManager.Load <Texture>(AssetLoader.GetStoryBgImage(vo.BgImageId), ModuleConfig.MODULE_STORY); _bgImageCache[vo.BgImageId] = tex; } if (vo.EntityList.Count > 0) { for (int i = 0; i < vo.EntityList.Count; i++) { EntityVo entity = vo.EntityList[i]; if (entity.type == EntityVo.EntityType.Role) { tex = ResourceManager.Load <Texture>(AssetLoader.GetStoryRoleImageById(entity.id), ModuleConfig.MODULE_STORY); _roleImageCache[entity.id] = tex; } else if (entity.type == EntityVo.EntityType.DialogFrame) { if (!string.IsNullOrEmpty(entity.headId)) { tex = ResourceManager.Load <Texture>(AssetLoader.GetHeadImageById(entity.headId), ModuleConfig.MODULE_STORY); _headImageCache[entity.headId] = tex; } } } } if (_loadCount <= 0) { LoadComplete(); } }