public async Task AddPackageAsync(string type) { if (Define.IsEditorMode) { await Task.CompletedTask; UIPackage uiPackage = UIPackage.AddPackage($"{FUI_PACKAGE_DIR}/{type}"); packages.Add(type, uiPackage); } else { string uiBundleDesName = AssetBundleHelper.StringToAB($"{type}_fui"); string uiBundleResName = AssetBundleHelper.StringToAB(type); ResourcesComponent resourcesComponent = Game.Scene.GetComponent <ResourcesComponent>(); await resourcesComponent.LoadBundleAsync(uiBundleDesName); await resourcesComponent.LoadBundleAsync(uiBundleResName); AssetBundle desAssetBundle = resourcesComponent.GetAssetBundle(uiBundleDesName); AssetBundle resAssetBundle = resourcesComponent.GetAssetBundle(uiBundleResName); UIPackage uiPackage = UIPackage.AddPackage(desAssetBundle, resAssetBundle); packages.Add(type, uiPackage); } }
public void RemovePackage(string type) { UIPackage package; if (packages.TryGetValue(type, out package)) { var p = UIPackage.GetByName(package.name); if (p != null) { UIPackage.RemovePackage(package.name); } packages.Remove(package.name); } if (!Define.IsEditorMode) { string uiBundleDesName = AssetBundleHelper.StringToAB($"{type}_fui"); string uiBundleResName = AssetBundleHelper.StringToAB(type); Game.Scene.GetComponent <ResourcesComponent>().UnloadBundle(uiBundleDesName); Game.Scene.GetComponent <ResourcesComponent>().UnloadBundle(uiBundleResName); } }