Нуждается в доработке (как минимум чтобы вращалось в правильную сторону), но вроде-как выглядит прикольно
41 lines
2.8 KiB
C#
41 lines
2.8 KiB
C#
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); // Вектор, отвечающий за применение гравитации
|
|
}
|
|
} |