using Obstacle; using UnityEngine; using Player; public class GameProgression : MonoBehaviour { [Header("Ссылки на системы")] public PlayerCarController player; public ObstacleSpawner spawner; public VanController van; [Header("Графики сложности (Ось X - секунды игры)")] [Tooltip("Как растет скорость машины")] public AnimationCurve speedCurve = AnimationCurve.Linear(0, 20, 120, 50); [Tooltip("Задержка между спавном. Чем ниже график, тем плотнее поток машин")] public AnimationCurve spawnIntervalCurve = AnimationCurve.Linear(0, 1.5f, 120, 0.4f); [Tooltip("Шанс появления препятствий вместо авто ")] public AnimationCurve obstacleChanceCurve = AnimationCurve.Linear(0, 0.1f, 120, 0.5f); private float _timeAlive; void Update() { // Считаем время заезда _timeAlive += Time.deltaTime; float currentSpeed = speedCurve.Evaluate(_timeAlive); if (player != null) player.forwardSpeed = currentSpeed; if (van != null) van.forwardSpeed = currentSpeed; spawner.currentSpawnInterval = spawnIntervalCurve.Evaluate(_timeAlive); spawner.currentObstacleChance = obstacleChanceCurve.Evaluate(_timeAlive); } }