PlayerMovementConfigSO.cs

新增 WallHangSpeed = 1f:正常抓墙(低于等于 wallGrabY,可蹬墙跳区间)的缓慢下滑速度
WallSlideSpeed 语义调整为:受限模式(高于 wallGrabY)的较快下滑速度
PlayerMovement.cs

ApplyWallSlide() 改为 ApplyWallSlide(float speed),由调用方传入对应速度
WallSlideState.cs

OnStateFixedUpdate:正常模式用 WallHangSpeed,受限模式用 WallSlideSpeed(两档清晰分离)
恢复反方向键脱离:脱离时同样调用 StartWallCoyote,wall coyote 窗口内仍能触发蹬墙跳
更新类头注释完整描述脱离方式和下滑速度档位Two wall slide improvements:
This commit is contained in:
2026-05-21 15:58:46 +08:00
parent 20b207ed58
commit fcd3e2dcdd
6 changed files with 106 additions and 26 deletions

View File

@@ -50,6 +50,9 @@
| Layer 名称 | 挂载对象 | 用途说明 |
|---|---|---|
| `Platform` | 静态地面、移动平台、Tilemap 地形、障碍物 | 玩家与敌人站立的实体平台;`PlayerMovement``_groundLayer``PlayerWallDetector``_wallLayer`(默认)均包含此 Layer投射物命中后销毁 |
| `OneWayPlatform` | 单向平台(静态) | 玩家可从下方穿过、从上方站立的平台;挂载 `PhantomPlate``PlatformEffector2D` + `IDropThrough``_groundLayer` 必须包含此 Layer 才能检测 `OnOneWayPlatform` 状态 |
| `MovingOneWayPlatform` | 单向平台(移动) | 会移动的单向平台;行为同 `OneWayPlatform`独立层便于移动脚本、AI 路径查询按层筛选 |
| `MidHeightOneWayPlatform` | 单向平台(半高) | 半腰高度的单向平台;角色可从侧方穿越;行为同 `OneWayPlatform` |
| `Wall` | 墙壁碰撞体(垂直面) | 玩家攀墙检测(`PlayerWallDetector` 默认掩码包含 `Wall``Platform`);若地形使用统一的 Tilemap 则墙壁可合并到 `Platform` Layer |
### 2.4 触发区域
@@ -81,8 +84,14 @@
| `PlayerHitBox` | `EnemyHurtBox` | ✅ | 玩家攻击伤害敌人 |
| `EnemyHitBox` | `PlayerHurtBox` | ✅ | 敌人攻击伤害玩家 |
| `EnemyHitBox` | `EnemyHurtBox` | ✅ | 敌人可互相伤害HitBox 运行时排除自身根节点) |
| `Player` | `Platform` | ✅ | 玩家站在平台上 |
| `Enemy` | `Platform` | ✅ | 敌人站在平台上 |
| `Player` | `Platform` | ✅ | 玩家站在实体平台上 |
| `Player` | `OneWayPlatform` | ✅ | 玩家站在单向平台上PlatformEffector2D 控制单向穿透) |
| `Player` | `MovingOneWayPlatform` | ✅ | 玩家站在移动单向平台上 |
| `Player` | `MidHeightOneWayPlatform` | ✅ | 玩家站在半高单向平台上 |
| `Enemy` | `Platform` | ✅ | 敌人站在实体平台上 |
| `Enemy` | `OneWayPlatform` | ✅ | 敌人站在单向平台上 |
| `Enemy` | `MovingOneWayPlatform` | ✅ | 敌人站在移动单向平台上 |
| `Enemy` | `MidHeightOneWayPlatform` | ✅ | 敌人站在半高单向平台上 |
| `PlayerProjectile` | `EnemyHurtBox` | ✅ | 玩家投射物伤害敌人 |
| `PlayerProjectile` | `PlayerHurtBox` | ❌ | 玩家投射物不自伤 |
| `PlayerProjectile` | `Platform` | ✅ | 玩家投射物命中地形 |