SummerGame/Assets/_Project/Scripts/RunnerPart/GameProgression.cs

38 lines
1.5 KiB
C#

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);
}
}