using UnityEngine; namespace BaseGames.Player { [CreateAssetMenu(menuName = "Player/MovementConfig")] public class PlayerMovementConfigSO : ScriptableObject { [Header("地面移动")] public float RunSpeed = 7f; public float Acceleration = 50f; public float Deceleration = 80f; [Header("跳跃")] public float JumpForce = 18f; public float CoyoteTime = 0.12f; public float FallGravityMult = 2.5f; public float MaxFallSpeed = 20f; [Header("冲刺")] public float DashSpeed = 20f; public float DashDuration = 0.18f; public float DashCooldown = 0.4f; public int MaxAerialDashes = 1; [Header("蹬墙 / 壁滑")] 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; public float WallJumpAwayForceY = 18f; public float WallJumpInputLockDuration = 0.15f; [Header("重力")] public float DefaultGravityScale = 3f; } }