38 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|