# 脚本文件夹结构说明 本项目的脚本已经按照功能模块重新组织,结构如下: ## 📁 文件夹结构 ### 🎯 CombatSystem (战斗系统) 负责游戏中的战斗相关功能,包括武器、敌人、子弹等 - `BallController.ts` - 球体控制器 - `BlockManager.ts` - 方块管理器 - `BulletController.ts` - 子弹控制器 - `EnemyController.ts` - 敌人控制器 - `EnemyInstance.ts` - 敌人实例 - `EnemyComponent.ts` - 敌人组件 - `EnemySpawnerExample.ts` - 敌人生成器示例 - `EnemySpawnerTestScene.ts` - 敌人生成器测试场景 - `WeaponComponent.ts` - 武器组件 - `WeaponBlockExample.ts` - 武器方块示例 - `WeaponBlockTestScene.ts` - 武器方块测试场景 - `GameStateSetupGuide.md` - 游戏状态管理系统设置指南 ### 🏢 Core (核心系统) 包含所有模块共用的核心脚本 - `ConfigManager.ts` - 配置管理器(武器、敌人配置) - `PhysicsManager.ts` - 物理管理器 - `README.md` - 核心系统说明 ### 🎮 LevelSystem (关卡系统) 负责关卡切换、数据保存和游戏状态管理 - `LevelManager.ts` - 关卡管理器 - `GameManager.ts` - 增强版游戏管理器(整合游戏启动、状态管理、UI控制) ### 🛒 ShopSystem (商店系统) 负责物品购买,影响战斗武器 - `ShopManager.ts` - 商店管理器 ## 🔗 模块间依赖关系 ``` Core (核心) ├── ConfigManager - 为其他系统提供配置数据 └── PhysicsManager - 物理系统管理 LevelSystem (关卡) ├── GameManager - 统一游戏管理(整合游戏启动、状态管理、UI控制) ├── LevelManager - 关卡进度管理 ├── 依赖 Core/ConfigManager 获取配置数据 └── 协调 CombatSystem 和 ShopSystem CombatSystem (战斗) ├── 依赖 Core/ConfigManager 获取武器和敌人配置 └── 被 LevelSystem/GameManager 调用管理战斗状态 ShopSystem (商店) ├── 依赖 Core/ConfigManager 获取武器信息 └── 影响 CombatSystem 的武器可用性 ``` ## 📋 import 路径规范 ### CombatSystem 中的 import ```typescript import { ConfigManager } from '../Core/ConfigManager'; ``` ### LevelSystem 中的 import ```typescript import { ConfigManager } from '../Core/ConfigManager'; import { LevelManager } from './LevelManager'; import { GameManager } from './GameManager'; ``` ### ShopSystem 中的 import ```typescript import { ConfigManager } from '../Core/ConfigManager'; ``` ### Core 系统内部 import ```typescript // Core 系统内部可以直接相对引用 import { ConfigManager } from './ConfigManager'; ``` ## 🚀 系统功能说明 ### CombatSystem 功能 - ✅ 武器系统:支持多种武器类型和配置 - ✅ 敌人系统:支持不同类型敌人和Spine动画 - ✅ 战斗机制:子弹、碰撞、伤害计算 - ✅ 方块管理:游戏场景中的方块控制 ### Core 功能 - ✅ 配置管理:武器和敌人的JSON配置加载 - ✅ 物理管理:物理系统初始化 ### LevelSystem 功能 - ✅ 关卡进度:保存/加载关卡完成状态 - ✅ 星级系统:记录最佳成绩和星级 - ✅ 解锁机制:关卡解锁逻辑 - ✅ 游戏管理:统一游戏启动、状态管理、UI控制 - ✅ 血量监控:自动胜利失败检测 - ✅ UI交互:成功失败界面按钮处理 ### ShopSystem 功能 - ✅ 货币系统:金币和宝石管理 - ✅ 物品购买:武器、升级、消耗品 - ✅ 购买限制:次数限制和价格检查 - ✅ 数据持久化:购买记录保存 ## 🔧 使用说明 1. **Core系统** - 提供基础配置和物理管理 2. **LevelSystem** - 统一游戏管理,包含关卡和游戏状态控制 3. **CombatSystem** - 在游戏场景中使用,处理战斗逻辑 4. **ShopSystem** - 在商店界面中使用 ## 📝 开发注意事项 1. **LevelSystem/GameManager** 是主要的游戏控制中心,负责协调各个系统 2. 所有系统都通过 Core/ConfigManager 获取配置数据 3. 避免跨系统的直接依赖(除了对Core的依赖) 4. 新增功能时,请按照模块划分添加到对应文件夹 5. 保持 import 路径的一致性和正确性 ## 🎯 下一步开发计划 - [ ] 完善 LevelSystem 的关卡配置和管理 - [ ] 扩展 ShopSystem 的物品类型和效果 - [ ] 优化 CombatSystem 的性能和特效 - [ ] 添加音频系统到 Core 模块 ### Final Project Structure ``` assets/scripts/ ├── CombatSystem/ (12 files - 纯战斗功能) ├── Core/ (2 files - 核心配置和物理) ├── LevelSystem/ (2 files - 关卡和游戏管理) ├── ShopSystem/ (1 file - 商店管理) └── README.md (项目文档) ``` The project now has a complete modular architecture with: - ✅ 统一的游戏管理系统(整合启动、状态、UI控制) - ✅ 完整的战斗系统(武器、敌人、物理交互) - ✅ 关卡进度系统(数据持久化、解锁机制) - ✅ 商店购买系统(货币管理、物品购买) - ✅ 自动胜利失败检测和UI处理 - ✅ 完整的系统间集成和文档指南 ## LevelSystem (关卡系统) ### LevelManager.ts ⭐ **重要更新** - **功能**: 关卡进度管理和数据持久化 - **类型**: 纯TypeScript类(不继承Component) - **挂载**: ❌ **不需要挂载到任何节点** - **特性**: - 单例模式,全局访问 - 关卡解锁机制 - 成绩和星级记录 - 本地数据存储(localStorage) - 自动初始化 - **使用**: `LevelManager.getInstance()` ### LevelConfigManager.ts ⭐ **新增** - **功能**: 关卡配置管理系统,让策划在编辑器中配置关卡 - **特性**: - 编辑器可视化配置关卡数量和JSON文件 - 自动验证配置完整性 - 支持热重载和缓存机制 - 完整的关卡数据结构定义 - **配置项**: 总关卡数、关卡ID、名称、JSON配置文件 - **JSON格式**: 武器配置、敌人波次、关卡设置、星级要求 ### GameManager.ts - **功能**: 统一游戏管理器(整合了原有的多个管理器) - **特性**: - 游戏状态管理(成功/失败/暂停) - 自动血量监控和敌人检测 - UI按钮事件处理 - 物理系统初始化 - **关卡配置集成** ⭐ 支持加载和应用关卡配置 - **波次和敌人数量UI** ⭐ 显示当前波次和该波次总敌人数量 - **集成**: EnemyController, LevelManager, ShopManager, **LevelConfigManager** - **UI节点**: - 波次显示: `Canvas/GameLevelUI/WaveInfo/WaveNumber` - 敌人数量: `Canvas/GameLevelUI/EnemyNode/EnemyNumber` ### WaveUISetupGuide.md ⭐ **新增** - **功能**: 波次和敌人数量UI设置指南 - **内容**: 编辑器配置步骤、节点结构、样式建议、调试方法