using UnityEngine; namespace Code.Configs { [CreateAssetMenu(fileName = "CharacterConfig", menuName = "Config/CharacterConfig")] public class CharacterConfig : ScriptableObject { // Основное движение по земле public float maxStableMoveSpeed = 8f, // Максимальная скорость движения по устойчивой поверхности stableMovementSharpness = 15f, // Резкость изменения скорости движения (чем выше - тем резче) orientationSharpness = 10f, // Резкость изменения вращения персонажа (чем выше - тем резче) jumpSpeed = 10f; // Скорость прыжка // Спринт public float sprintMoveSpeed = 12f, // Максимальная скорость спринта sprintAngleThreshold = 90f; // Максимальный угол (в градусах) от направления вперёд, при котором разрешён спринт // Слайд public float slideSpeed = 20f, // Скорость слайда slideDuration = 0.8f, // Длительность слайда в секундах slideCooldown = 1.5f; // Время перезарядки слайда в секундах // Залазание на стены public float wallClimbSpeedFactor = 0.8f, // Коэффициент преобразования горизонтальной скорости в вертикальную при залазании на стену minWallClimbSpeed = 9f, // Минимальная горизонтальная скорость для начала залазания на стену wallDetectionAngleThreshold = 80f; // Максимальный угол (в градусах) от вертикали, при котором поверхность считается "стеной" // Наклон при залазании на стены public float maxWallLeanAngle = 45f, // Максимальный угол наклона от стены (в градусах) wallLeanSharpness = 50f, // Скорость наклона/выпрямления (чем выше — тем резче) wallLeanHeightScale = 0.1f; // Множитель: на сколько метров подъёма = 1 единица "наклона" // Гравитация public Vector3 gravity = new(0f, -30f, 0f); // Вектор, отвечающий за применение гравитации } }