# 策划使用指南 - 子关卡切换系统

## 快速开始

### 第一步：给 TileMap 添加标签
1. 在关卡中选择一个 `PaperTileMapActor`
2. 在 Details 面板中找到 `Tags` 数组
3. 添加一个新标签，格式为：`SubLevel_名称`
   - 例如：`SubLevel_Room1`
   - 例如：`SubLevel_Boss`
   - 例如：`SubLevel_Shop`

**重要：** 标签必须以 `SubLevel` 开头（这是默认前缀）

### 第二步：验证自动收集
1. 运行游戏
2. 查看输出日志（Output Log）
3. 应该看到类似这样的消息：
   ```
   LogTemp: Collected TileMap: 'PaperTileMapActor_1' with tag 'SubLevel_Room1'
   LogTemp: LevelGMBase: Collected 3 TileMap(s) with tag prefix 'SubLevel'
   ```

### 第三步：在蓝图中切换子关卡
1. 获取 GameMode 引用
2. 调用 `ChangeSubLevelByName` 节点
3. 输入参数：
   - **Tile Map Name**: 你添加的完整标签名（例如 `SubLevel_Room1`）
   - **Transition Time**: 过渡时长（秒），-1 表示使用默认值

## 示例场景配置

假设你有一个包含 3 个房间的关卡：

### TileMap 配置
| TileMap Actor | 添加的标签 | 用途 |
|--------------|-----------|------|
| TileMap_Start | `SubLevel_Start` | 起始房间 |
| TileMap_Middle | `SubLevel_Middle` | 中间房间 |
| TileMap_End | `SubLevel_End` | 结束房间 |

### 蓝图切换示例
```
当玩家触碰 Door_To_Middle 时：
  获取 GameMode
  调用 ChangeSubLevelByName
    - Tile Map Name: SubLevel_Middle
    - Transition Time: 1.5 (1.5秒平滑过渡)
```

## 高级配置

### 修改标签前缀
如果你想用其他前缀（不用 "SubLevel"）：
1. 选择关卡的 GameMode 蓝图
2. 找到 `Tile Map Collection Tag` 属性
3. 修改为你想要的前缀（例如 "Room"）
4. 所有 TileMap 的标签也要相应修改（例如 "Room_1"、"Room_2"）

### 手动配置（不推荐）
如果你不想使用自动收集：
1. 在 GameMode 中，设置 `Auto Collect Tile Maps = false`
2. 手动在 `Level Tile Maps` 映射中添加每个 TileMap
3. 使用自定义的名称作为 Key

## 常见问题

**Q: 为什么摄像机没有切换？**
A: 检查以下几点：
1. TileMap 是否添加了正确的标签（以 "SubLevel" 开头）
2. 输出日志中是否显示 TileMap 被成功收集
3. ChangeSubLevelByName 中使用的名称是否与标签完全一致

**Q: 可以即时切换不要过渡动画吗？**
A: 可以，将 Transition Time 设为 0

**Q: 可以自定义过渡时长吗？**
A: 可以，Transition Time 参数就是过渡时长（秒）
- -1 = 使用默认值（1.0秒）
- 0 = 即时切换
- 任何正数 = 指定的过渡时长

**Q: 一个 TileMap 可以有多个标签吗？**
A: 可以，但只会用第一个匹配的标签作为 Key

## 调试技巧

1. **查看已收集的 TileMap：**
   - 运行游戏后，在编辑器中选择 GameMode 实例
   - 查看 `Level Tile Maps` 属性，可以看到所有已收集的映射

2. **启用详细日志：**
   - 输出日志会显示每个被收集的 TileMap
   - 显示切换开始和完成的消息

3. **测试不同的过渡时长：**
   - 尝试不同的 Transition Time 值找到最佳效果
   - 推荐范围：0.5 - 2.0 秒

