# 关卡配置系统使用指南 ## 概述 关卡配置系统允许策划在Cocos Creator编辑器中直接配置关卡数量和对应的JSON文件,无需修改代码即可添加或修改关卡。 ## 组件说明 ### LevelConfigManager 关卡配置管理器,负责: - 管理所有关卡的JSON配置文件 - 验证配置文件的完整性 - 提供关卡配置的加载和缓存功能 ### LevelJsonConfig 单个关卡的配置项,包含: - **关卡ID**: 唯一标识符 - **关卡名称**: 显示名称 - **JSON文件**: 关卡的详细配置 ## 设置步骤 ### 1. 创建关卡配置管理器节点 在场景中创建一个节点,添加 `LevelConfigManager` 组件: ``` Canvas └── LevelConfigManager (添加LevelConfigManager组件) ``` ### 2. 配置关卡参数 在 `LevelConfigManager` 组件的属性面板中: - **总关卡数量**: 设置游戏总共有多少关 - **关卡配置列表**: 为每个关卡配置对应的JSON文件 ### 3. 创建关卡JSON文件 在 `assets/resources/data/levels/` 目录下创建JSON文件: ``` assets/resources/data/levels/ ├── Level1.json ├── Level2.json ├── Level3.json ├── Level4.json └── Level5.json ``` ### 4. JSON文件格式 每个关卡JSON文件应包含以下结构: ```json { "name": "关卡名称", "scene": "场景标识", "description": "关卡描述", "weapons": ["武器1", "武器2", "武器3"], "waves": [ { "waveId": 1, "enemies": [ { "enemyType": "敌人类型", "count": 数量, "spawnInterval": 生成间隔, "characteristics": ["特性1", "特性2"] } ] } ], "levelSettings": { "initialHealth": 初始血量, "timeLimit": 时间限制, "difficulty": "难度等级", "starRequirements": { "1star": { "healthRemaining": 1 }, "2star": { "healthRemaining": 50 }, "3star": { "healthRemaining": 80 } } } } ``` ### 5. 拖拽JSON文件到配置列表 1. 将创建的JSON文件拖拽到项目资源管理器中 2. 在 `LevelConfigManager` 的 `关卡配置列表` 中添加对应数量的配置项 3. 为每个配置项设置: - **关卡ID**: 1, 2, 3, 4, 5... - **关卡名称**: 新手引导、丛林探险等 - **JSON文件**: 拖拽对应的JSON文件 ## 使用方法 ### 代码中获取关卡配置 ```typescript // 获取关卡配置管理器 const levelConfigManager = LevelConfigManager.getInstance(); // 加载指定关卡的配置 const levelConfig = await levelConfigManager.getLevelConfig(1); if (levelConfig) { console.log('关卡名称:', levelConfig.name); console.log('可用武器:', levelConfig.weapons); console.log('波次数量:', levelConfig.waves.length); } // 检查关卡是否已配置 const isConfigured = levelConfigManager.isLevelConfigured(1); // 获取所有可用关卡 const availableLevels = levelConfigManager.getAvailableLevels(); ``` ### GameManager集成 GameManager已经集成了关卡配置系统: ```typescript // 加载当前关卡配置 const levelConfig = await gameManager.loadCurrentLevelConfig(); // 获取关卡信息 const levelInfo = await gameManager.getCurrentLevelInfo(); ``` ## 调试功能 ### 控制台命令 在Cocos Creator控制台中可以使用以下命令: ```javascript // 获取关卡配置管理器 const levelConfigManager = cc.find('Canvas/LevelConfigManager').getComponent('LevelConfigManager'); // 验证所有关卡配置 levelConfigManager.debugPrintAllConfigs(); // 重新加载配置 levelConfigManager.reloadAllConfigs(); // 生成示例配置 const sampleConfig = levelConfigManager.generateSampleConfig(1); console.log(sampleConfig); ``` ## 配置验证 系统会自动验证: - ✅ 所有关卡是否都有对应的配置 - ✅ JSON文件是否存在且格式正确 - ✅ 是否有重复的关卡ID - ✅ 必要字段是否完整 验证结果会在控制台输出,帮助策划快速定位配置问题。 ## 扩展功能 ### 添加新关卡 1. 在 `LevelConfigManager` 中增加 `总关卡数量` 2. 创建新的JSON文件(如 `Level6.json`) 3. 在 `关卡配置列表` 中添加新的配置项 4. 设置关卡ID、名称和JSON文件 ### 修改现有关卡 直接修改对应的JSON文件即可,系统会自动重新加载配置。 ## 注意事项 1. **JSON文件路径**: 必须放在 `assets/resources/data/levels/` 目录下 2. **关卡ID**: 必须从1开始,连续递增,不能重复 3. **文件命名**: 建议使用 `Level1.json`, `Level2.json` 的格式 4. **配置完整性**: 确保所有必要字段都已填写 5. **数据类型**: 注意JSON中的数字、字符串、数组格式 ## 示例配置 系统已经提供了5个关卡的完整示例配置,可以直接使用或作为参考: - **Level1.json**: 新手引导(草地平原) - **Level2.json**: 丛林探险(森林场景) - **Level3.json**: 魔法废墟(魔幻场景) - **Level4.json**: 钢铁堡垒(工业场景) - **Level5.json**: 终极挑战(赛博都市) 每个示例都包含了完整的武器配置、敌人波次和关卡设置,可以直接使用。