# Unity_Flag_Framework **Repository Path**: sinner13y/unity-flag-gameframework ## Basic Information - **Project Name**: Unity_Flag_Framework - **Description**: 一个基于Unity引擎的游戏框架,提供了游戏开发中常用的功能模块,包括数据存储、消息系统、UI管理、音频管理、视频播放等。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-23 - **Last Updated**: 2025-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Unity GameFrame 一个基于Unity引擎的游戏框架,提供了游戏开发中常用的功能模块,包括数据存储、消息系统、UI管理、音频管理、视频播放、广告控制等。 ## 许可证 本项目采用MIT许可证,详情请查看[LICENSE](LICENSE)文件。 ## 功能模块 ### 1. 广告系统 (Ads) 管理不同平台的广告展示,目前支持微信小游戏平台和编辑器环境下的广告模拟。 主要类和功能: - [AdManager.cs](Ads/AdManager.cs) - 广告管理器,提供统一的广告调用接口 - [AdChannelEnum.cs](Ads/AdChannelEnum.cs) - 广告渠道枚举定义 - [AdConfig.cs](Ads/AdConfig.cs) - 广告配置相关类 - [AdSettings.cs](Ads/AdSettings.cs) - 广告设置类,包含各平台广告ID配置 - [AdStatus.cs](Ads/AdStatus.cs) - 广告状态枚举 - [IADExample.cs](Ads/IADExample.cs) - 广告接口定义 - 渠道实现: - [OnEditorContent.cs](Ads/Channel/OnEditorContent.cs) - 编辑器环境下广告模拟实现 - [WeChatADContent.cs](Ads/Channel/WeChatADContent.cs) - 微信平台广告实现 - [广告README](Ads/README.md) - 广告系统使用说明 ### 2. 数据存储 (DataStorage) 提供本地数据持久化存储解决方案,支持多种数据类型的读写操作。 主要类和功能: - [DataStorage.cs](DataStorage/DataStorage.cs) - 核心数据存储系统,支持本地数据持久化 - [Savable.cs](DataStorage/Savable.cs) - 可存储对象基类,提供数据自动保存功能 使用示例: ```csharp // 存储布尔值 DataStorage.SetBool("isFirstPlay", false); // 获取布尔值 bool isFirstPlay = DataStorage.GetBool("isFirstPlay", true); /// /// 高性能自动保存字段使用示例 /// public class PlayerData : Savable { // 使用新的简化方式创建AutoSaveProperty public override string Key => "Player"; [AutoSave] public AutoSaveField score { get; private set; } = (AutoSaveField)5; [AutoSave] public AutoSaveField playerName { get; private set; } = (AutoSaveField)"Player"; [AutoSave] public AutoSaveField isFirstPlay = (AutoSaveField)true; internal override void Init() { } } // 获取存储的数据实例 PlayerData playerData = DataStorage.GetSavable(); ``` ### 3. 游戏核心 (Game) 提供游戏运行所需的基础服务,如全局协程、定时器、任务系统等。 主要类和功能: - [GameState.cs](Game/GameState.cs) - 游戏状态管理 - [GameTimer.cs](Game/GameTimer.cs) - 游戏计时器系统 - [GlobalCoroutine.cs](Game/GlobalCoroutine.cs) - 全局协程管理器 - [Task.cs](Game/Task.cs) - 任务系统 - [TaskState.cs](Game/TaskState.cs) - 任务状态定义 ### 4. 消息系统 (Message) 实现松耦合的组件间通信机制,避免直接引用造成的紧耦合。 主要类和功能: - [MessageComponent.cs](Message/MessageComponent.cs) - 消息组件 - [MessageDataInterface.cs](Message/MessageDataInterface.cs) - 消息数据接口 - [MessageDefine.cs](Message/MessageDefine.cs) - 消息定义 - [MessageSys.cs](Message/MessageSys.cs) - 消息事件处理 - [MessageListener.cs](Message/MessageListener.cs) - 消息监听器 使用示例: ```csharp // 添加消息监听器 MessageListener listener = MessageSys.AddNode(gameObject , "ui"); listener.Listener("GameOver", OnGameOver) .Listener("LevelUp", OnLevelUp); // 发送消息 MessageSys.SendMessage("GameOver", score); MessageSys.SendMessageType("LevelUp", level, "ui"); // 消息处理函数 private void OnGameOver(object data) { int finalScore = (int)data; // 处理游戏结束逻辑 } ``` ### 5. 网络模块 (Network) 提供基本的网络请求功能,用于与后端服务器通信。 主要类和功能: - [WebRequest.cs](Network/WebRequest.cs) - 网络请求基类,支持与服务器通信 ### 6. 音频系统 (Sound) 统一管理游戏中背景音乐和音效的播放。 主要类和功能: - [AudioController.cs](Sound/AudioController.cs) - 音频控制器 - [AudioManager.cs](Sound/AudioManager.cs) - 音频管理器,支持背景音乐和音效 - [AudioSavable.cs](Sound/AudioSavable.cs) - 音频设置存储 使用示例: ```csharp // 播放背景音乐 AudioManager.PlayAudioClip(AudioPlayType.Music, "background"); // 播放音效 AudioManager.PlayAudioClip(AudioPlayType.SoundEffects, "click"); // 设置音量 AudioManager.SetMusicVolume(0.8f); AudioManager.SetSoundVolume(0.6f); // 开关音乐/音效 AudioManager.SwitchMusic(true); AudioManager.SwitchSound(true); ``` ### 7. UI系统 (UI) 提供完整的UI管理方案,包括层级管理、界面推拉栈等。 主要类和功能: - [UICanvas.cs](UI/UICanvas.cs) - UI画布管理 - [UIItemBase.cs](UI/UIItemBase.cs) - UI项基类 - [UILayer.cs](UI/UILayer.cs) - UI层级定义 - [UIManager.cs](UI/UIManager.cs) - UI管理器,负责UI的创建和管理 - [UIViewBase.cs](UI/UIViewBase.cs) - UI视图基类 - 扩展组件: - 圆形图像 (CircleImage) - 反向遮罩 (InvertMask) - 雷达图 (RadarChart) 使用示例: ```csharp // 推入一个UI视图 UIManager.Push("MainMenu"); // 弹出当前UI视图 UIManager.Pop(); // 创建一个UI项 UIManager.CreatorItem("CoinDisplay", UILayer.Top, true, coinCount); // 关闭所有UI UIManager.CloseAll(); ``` ### 8. 视频系统 (Video) 支持视频播放和预加载功能,适用于游戏开场动画或教程视频等场景。 主要类和功能: - [IVideo.cs](Video/IVideo.cs) - 视频播放接口 - [VideoController.cs](Video/VideoController.cs) - 视频控制器 - [VideoManager.cs](Video/VideoManager.cs) - 视频管理器 - [VideoPreloader.cs](Video/VideoPreloader.cs) - 视频预加载器 - [WXVideoController.cs](Video/WXVideoController.cs) - 微信小程序视频控制器 ### 9. 工具类 (Tools) 提供各种实用工具类,简化开发过程。 主要类和功能: - [AntiAddictionSystem.cs](Tools/AntiAddictionSystem.cs) - 防沉迷系统 - [BuiltinDelegate.cs](Tools/BuiltinDelegate.cs) - 内建委托 - [RandomExtensions.cs](Tools/RandomExtensions.cs) - 随机扩展方法 - [ScriptReflection.cs](Tools/ScriptReflection.cs) - 脚本反射工具 - [UnityExtensions.cs](Tools/UnityExtensions.cs) - Unity扩展方法 ### 10. 其他 - [LoadAssets.cs](LoadAssets.cs) - 资源加载 - [Log.cs](Log.cs) - 日志系统 - [ModuleBase.cs](ModuleBase.cs) - 模块基类 ## 使用说明 1. 将此框架导入到Unity项目中 2. 根据需要使用相应的模块 3. 可以继承基类来扩展功能 在使用框架之前,请确保在Resources目录下创建FrameworkSetting.asset配置文件,并将其放在Resources目录中。 ## 注意事项 - 本框架基于Unity开发,需要Unity引擎支持 - 各模块之间相对独立,可根据项目需求选择使用 - 部分模块可能需要额外的依赖库 - 框架使用自定义日志系统Log,不建议使用UnityEngine.Debug ## API文档 框架提供了完整的API文档,详细说明了每个模块的类、方法和使用示例。请参阅 [API_DOCUMENTATION.md](API_DOCUMENTATION.md) 获取更多信息。 ## 贡献 欢迎提交Issue和Pull Request来改进这个框架。