100 lines
3.1 KiB
Markdown
100 lines
3.1 KiB
Markdown
# 策划使用指南 - 子关卡切换系统
|
||
|
||
## 快速开始
|
||
|
||
### 第一步:给 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 秒
|
||
|