示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }