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

@@ -57,10 +57,16 @@ namespace BaseGames.Player
[Header("抓墙 / 壁滑")]
[Tooltip("受限抓墙时(高于 wallGrabY的下滑速度单位/秒)。推荐 2。")]
public float WallSlideSpeed = 2f;
[Tooltip("正常抓墙时(低于等于 wallGrabY可蹬墙跳区间的缓慢下滑速度单位/秒)。\n" +
"设为 0 = 完全静止悬挂;推荐 1轻微下滑更有手感。")]
public float WallHangSpeed = 1f;
public float WallRayLength = 0.55f;
public float WallRayOffsetY = 0.2f;
[Tooltip("抓墙高度容差:当前 Y 不超过 wallGrabY + 此值时视为未抬升,防止浮点抖动误判。")]
public float WallGrabHeightTolerance = 0.05f;
[Tooltip("离开墙面后仍可触发蹬墙跳的缓冲时长(秒)。" +
"类比地面土狼时间,主动按↓脱离或墙面消失后,此窗口内按跳跃仍视为有效的蹬墙跳。推荐 0.12。")]
public float WallCoyoteTime = 0.12f;
[Header("蹬墙跳 — 背墙跳Jump Away远离墙壁斜上方")]
[Tooltip("背墙跳水平速度(远离墙壁方向)。推荐 14。")]