# BaseFramework **Repository Path**: Jerry12186/base-framework ## Basic Information - **Project Name**: BaseFramework - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-04 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Jerry.Base 资源管理框架 基于 [YooAssets](https://github.com/tuyoogame/YooAssets) 的 Unity 资源管理框架,提供热更新、 assetbundle 管理、多包加载等功能。 ## 安装依赖 - YooAssets 2.3.18 - HybridCLR 8.11.0 https://gitee.com/focus-creative-games/hybridclr_unity.git - UniTask 2.5.10 https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask # 使用方法 - ## 更新 - `HotUpdateConfig.RemoteServices = new RemoteServices();// host模式必须填写,可以自定义RemoteServices var scripts = PackageManager.Instance.CreatePackage("要更新的Package名字"); await scripts.PrepareHotUpdate(); scripts.CreateDownloader(); await scripts.StartUpdate()` - ## 加载资源 ` var g1 = await _assets.InstantiatePrefab("资源名字或者路径");`//实例化预制体 var img = await _assets.LoadAssetEnter("资源名字或者路径", "需要使用这个资源的GameObject"); ## 特性 - **热更新支持**:支持资源热更新,包含下载器管理、断点续传、失败重试 - **多包管理**:支持多个资源包并行管理 - **多种运行模式**: - 编辑器模拟模式(EditorSimulateMode) - 离线模式(Offline) - 主机模式(Host) - Web 模式(Web) - **引用计数**:自动管理资源引用计数,防止内存泄漏 - **异步加载**:基于 UniTask 的异步资源加载 - **场景加载**:支持异步场景加载 ## 核心组件 ### AssetManager 资源管理器单例,提供资源加载的入口点。 ### MyYooAssets 资源包封装类,提供以下功能: - 资源包初始化(支持多种模式) - 资源热更新 - 资源下载管理 - 资源加载(Prefab、Asset、Sprite、Scene、RawFile) - 缓存清理 ### PackageManager 多资源包管理器,支持创建和获取多个资源包。 ### HotUpdateConfig 热更新配置类,可配置: - 运行模式 - 默认服务器地址 - 备用服务器地址 - 远程服务接口 ### AutoReleaseAsset 自动释放资源的 MonoBehaviour 组件,跟随 GameObject 自动释放资源引用。 ## 使用方法 ### 初始化配置 ```csharp // 设置热更新配置 HotUpdateConfig.PlayMode = EPlayMode.EditorSimulateMode; HotUpdateConfig.DefaultHostServer = "http://your-server.com/v1.0/"; HotUpdateConfig.FallbackHostServer = "http://backup-server.com/v1.0/"; ``` ### 创建资源包 ```csharp // 创建默认资源包 var package = PackageManager.Instance.CreatePackage("DefaultPackage", true); // 或获取已有资源包 var existingPackage = PackageManager.Instance.GetPackage("DefaultPackage"); ``` ### 加载 Prefab ```csharp var prefab = await package.InstantiatePrefab("Assets/Prefabs/Player.prefab"); ``` ### 加载资源 ```csharp // 加载 Sprite var sprite = await package.LoadSprite("AtlasName", "SpriteName"); // 加载资源 var texture = await package.LoadAssetEnter("Assets/Textures/Background", null); ``` ### 加载场景 ```csharp var sceneHandle = await package.LoadScene("MainScene"); ``` ### 资源热更新 ```csharp // 准备热更新 await package.PrepareHotUpdate(); // 开始更新 await package.StartUpdate(); ``` ### 清理缓存 ```csharp // 清理未使用的 Bundle 文件 await package.ClearCache(EFileClearMode.ClearUnusedBundleFiles); ``` ## 依赖 - Unity 2020.3+ - YooAssets - UniTask ## 许可证 MIT License