角色能力,存档

This commit is contained in:
2026-05-19 11:50:21 +08:00
parent d25f237e76
commit 2dcb7a961a
136 changed files with 36035 additions and 27551 deletions

View File

@@ -23,12 +23,21 @@ namespace BaseGames.Player
public float FallGravityMult = 3.5f;
[Tooltip("最大下落速度(终端速度)。推荐 22。")]
public float MaxFallSpeed = 22f;
[Tooltip("松开跳跃键时速度保留比例(变高跳)。推荐 0.45越小跳跃越低。")]
[Tooltip("松开跳跃键时速度保留比例(变高跳)。推荐 0.35越小跳跃越低。")]
[Range(0f, 1f)]
public float JumpCutMultiplier = 0.45f;
public float JumpCutMultiplier = 0.35f;
[Header("二段跳")]
[Tooltip("二段跳初速度。设为与 JumpForce 相同可获得等高二段跳。")]
[Header("跳跃 — 顶点悬停")]
[Tooltip("顶点悬停触发阈值(单位/秒)。当 |垂直速度| 低于此值时,重力缩减为 ApexGravityMultiplier 倍,\n产生\"滞空感\"。推荐 3。调高 → 悬停段更长;调低 → 悬停段更短乃至消失。")]
public float ApexThreshold = 3f;
[Tooltip("顶点区间内重力缩减比例(乘以 DefaultGravityScale。推荐 0.3。\n0 = 完全无重力悬停1 = 无悬停效果(等同于关闭此功能)。")]
[Range(0f, 1f)]
public float ApexGravityMultiplier = 0.3f;
[Header("空中跳跃N 段跳)")]
[Tooltip("腾空期间最多可追加的跳跃次数。1 = 二段跳2 = 三段跳,以此类推。\n需同时在 PlayerStats 中解锁 DoubleJump 能力,否则此值无效。")]
public int MaxAirJumps = 1;
[Tooltip("空中追加跳跃的初速度。所有段数共用同一数值;设为与 JumpForce 相同可获得等高多段跳。")]
public float DoubleJumpForce = 19f;
[Header("冲刺")]
@@ -38,8 +47,6 @@ namespace BaseGames.Player
public float DashDuration = 0.35f;
[Tooltip("冲刺冷却时长(秒)。推荐 0.6s,落地后才可再次冲刺。")]
public float DashCooldown = 0.6f;
[Tooltip("每次腾空可使用的最大空中冲刺次数。通常设为 1单次空中冲刺。")]
public int MaxAerialDashes = 1;
[Header("冲刺无敌帧(窗口 < 冲刺时长,且有独立 CD")]
[Tooltip("冲刺无敌窗口时长(秒)。仅为冲刺前段;窗口结束后即使仍在冲刺中也可受伤被打断(推荐 0.20s)。")]
@@ -47,17 +54,28 @@ namespace BaseGames.Player
[Tooltip("无敌的独立冷却。CD 内再次冲刺不会获得无敌帧,防止连冲变相持续无敌(推荐 0.9s)。")]
public float DashInvincibilityCooldown = 0.9f;
[Header("墙 / 壁滑")]
[Header("墙 / 壁滑")]
[Tooltip("受限抓墙时(高于 wallGrabY的下滑速度单位/秒)。推荐 2。")]
public float WallSlideSpeed = 2f;
public float WallJumpForceX = 12f;
public float WallJumpForceY = 16f;
public float WallRayLength = 0.55f;
public float WallRayOffsetY = 0.2f;
public float WallGrabMaxHeightGain = 0.5f;
public float WallGrabReleaseDelay = 0.08f;
public float WallJumpBackForceX = 14f;
public float WallJumpAwayForceX = 10f;
[Tooltip("抓墙高度容差:当前 Y 不超过 wallGrabY + 此值时视为未抬升,防止浮点抖动误判。")]
public float WallGrabHeightTolerance = 0.05f;
[Header("蹬墙跳 — 背墙跳(Jump Away,远离墙壁斜上方)")]
[Tooltip("背墙跳水平速度(远离墙壁方向)。推荐 14。")]
public float WallJumpAwayForceX = 14f;
[Tooltip("背墙跳垂直速度。推荐 18。")]
public float WallJumpAwayForceY = 18f;
[Header("蹬墙跳 — 对墙跳Jump Toward沿墙壁斜上方")]
[Tooltip("对墙跳水平速度(朝向墙壁方向,较小)。推荐 6。")]
public float WallJumpTowardForceX = 6f;
[Tooltip("对墙跳垂直速度(偏向正上方)。推荐 18。")]
public float WallJumpTowardForceY = 18f;
[Header("蹬墙跳 — 公共")]
[Tooltip("蹬墙跳后水平输入锁定时长(秒)。防止玩家立即向原墙壁方向输入取消起跳。推荐 0.15。")]
public float WallJumpInputLockDuration = 0.15f;
[Header("重力")]