# 蔚蓝Like 项目策划书

## 更新日志

V0.1.1

- 完成了角色冲刺的功能，使用component的架构设置了一个Dash Component
- 重构了一下角色的HSM，留出了一个给Dead state的状态
- 添加了角色趴住墙的逻辑，可以在墙上上下移动

v0.1.2

- 添加了一个WallDetector，用来检测墙壁，计划抛弃原版的is_on_wall

v0.1.3

- 完善了WallDetector的功能，添加了一个climb hop，climb jump等逻辑，具体手感优化得再关卡里做测试

v0.2.1

- 添加了全局的特效管理器，添加了全局的特效层，现在所有的特效在一个单独的Canvas Layer上播放。
- 添加了全局的音效管理器

v0.2.2

- 添加了基础的TriggerVolumn，可以定向的检测Player的碰撞，然后绑定到对应的组件上触发对应的效果
- 添加了落石的基础类，可以实现，开始抖动，结束抖动，移动，结束移动，移动到目标点等一系列操作
- 添加了一个落石的基础案例，可以在此案例的基础上对落石功能进行拓展和修改

v0.2.3

- 基础的关卡编辑器，主要明确了几个概念：Prop Scene，Act，目前已经有了一个基础的展示功能性质的Demo
- 分离了Player和控制器，现在Player是Avatar，控制器是PlayerController，控制器向玩家发送指令，玩家接收指令以驱动功能。

v0.2.4

- 鈎爪的基礎版本，包含了鈎爪類，鈎爪管理類，鈎爪錨點類等，鈎爪的移動方式是在LocoComp裏添加了一個額外的移動模式。

v0.3

- 添加全局相机管理器
- 添加了单向平台的基本范例
- 添加了角色重生点
- 关卡编辑器迭代

## 更新计划

V0.1

主要的工作是复刻蔚蓝的移动代码逻辑，反向出硬核平台跳跃游戏那种手感

- [x] 角色墙滑
  - [x] 墙滑代码拆解
  - [x] 墙滑功能实现
- [x] 角色墙滑跳
  - [x] 墙滑跳代码拆解
  - [x] 墙滑跳功能实现
- [x] 角色冲刺
  - [x] 角色冲刺代码拆解
  - [x] 角色冲刺功能实现
- [x] 角色扒墙
  - [x] 角色扒墙代码拆解
  - [x] 角色扒墙代码实现
  - [x] 角色扒墙跳代码实现
  - [x] 角色爬墙到极限时候自动跳上平台
- [ ] ~~手感优化~~
  - [ ] ~~跳跃手感优化~~
  - [ ] ~~墙跳手感优化~~
  - [ ] ~~贴墙上跳会额外受到贴墙重力导致上不去的BUG~~

V0.2

主要是实现蔚蓝的地图相关的功能，比如穿过一个入口之后时间缓速并切换场景，等

- [x] Phantom Camera 插件接入
- [ ] ~~相机功能~~
  - [x] ~~相机追随~~
  - [x] ~~相机震动~~
- [ ] 地图功能
  - [ ] ~~地图美术功能~~
  - [ ] ~~地图物件功能~~
	- [x] 关卡编辑器
	  - [x] 根据state的物件性质加载
	  - [x] 物件性质预设集Act
	  - [x] 场景管理器SceneManager
	  - [x] 玩家死亡和重生点


V0.3

主要是复刻蔚蓝的一些VFX，包括：

- 全局的VFX管理器：
- [x] VFX Manager
  - [x] 可以實現在場景中根據預設播放VFX
  - [x] 將所有的VFX放置在一個插件專屬的Layer
- [x] SFX Manager
  - [ ] 可以實現在場景中根據預設播放SFX
  - [x] 可以播放一個隨機的SFX Asset
  - [ ] 不同的SFX預設
- [x] CameraShake Manager
  - [x] 可以通過signal播放不同的相機震動
  - [x] 可以播放一個隨機的SFX Asset
  - [x] 不同的SFX預設
- [ ] G~~lobalTime Manager~~
  - [ ] ~~可以通過signal播放不同的相機震動~~
  - [ ] ~~可以播放一個隨機的SFX Asset~~
  - [ ] ~~不同的SFX預設~~

这个需求后续我们直接用Tween了，不写一个额外的Manager

- [x] GlobalCameraManger
  - [x] 全局的相機管理器，可以用來切換相機在不同的幾個預設之間切換
  - [ ] 敘事性相機
  - [ ] 跟隨玩家的運動性相機


V0.4
主要是拓展基于项目的特殊需求，包括：

- [ ] 钩爪功能基本实现
  - [x] 飛向目標點
  - [x] 如果目標點移動，會持續跟隨
  - [ ] 細化手感參數
  - [x] 在鈎爪飛到一半的時候可以取消鈎爪
  - [x] 鈎爪的長度可變
  - [ ] 飞向钩爪的过程中，如果碰到其他的地块，会提前中断钩爪。
- [ ] 跳跃手感优化V2
  - [ ] 跳跃到最高点上升时的速度曲线优化
  - [ ] 跳跃过程中的玩家的重力变化
