Perekyp/Assets/Scripts/Car/Physics/Data/CarPhysicsData.cs

28 lines
1.4 KiB
C#

using UnityEngine;
[CreateAssetMenu(fileName = "NewCarPhysics", menuName = "Car System/Physics Data")]
public class CarPhysicsData : ScriptableObject
{
[Header("Двигатель и КПП")]
public AnimationCurve torqueCurve; // Кривая: X - обороты (RPM), Y - крутящий момент (Nm)
public float maxRPM = 7000f;
public float minRPM = 800f;
public float shiftUpRPM = 6000f;
public float shiftDownRPM = 2500f;
public float[] gearRatios = { 3.1f, 2.2f, 1.6f, 1.2f, 0.9f, 0.7f };
public float finalDrive = 3.4f;
[Header("Рулевое управление")]
public float maxSteerAngle = 35f;
public float steerSmoothing = 10f; // Скорость поворота руля
[Tooltip("Как сильно режется угол поворота на высокой скорости")]
public AnimationCurve steerAngleBySpeed; // X - скорость (км/ч), Y - множитель угла (0..1)
[Header("Подвеска и физика")]
public Vector3 centerOfMassOffset = new Vector3(0, -0.2f, 0); // Пониженный центр масс
public float antiRollForce = 5000f; // Стабилизатор поперечной устойчивости
public float brakeForce = 3000f;
[Header("Дрифт (Ручник)")]
public float handbrakeFrictionMultiplier = 0.3f; // Насколько скользкой становится задняя ось
}