Files
ggj26_heron/Docs/关卡切换策划配置.md

100 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 策划使用指南 - 子关卡切换系统
## 快速开始
### 第一步:给 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 秒