@FantomBog

Как сделать постепенное увеличение скорости в unity?

Коротко об игре, flappy board с постепенном увеличении скорости.

Уже долгое время искал информацию как сделать чтобы скорость движение постепенно увеличилась, но в итоге ничего не нашёл, поэтому пишу сюда .

Вот это код который у меня сейчас (без постепенно увеличении скорости)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PipeMove : MonoBehaviour
{
    public float speed; // скорость для движения труб

    void Update()
    {
        transform.Translate(-speed * Time.deltaTime, 0, 0); // движение труб
    }
}


Заранее спасибо за помощь :)
  • Вопрос задан
  • 75 просмотров
Решения вопроса 2
MANAB
@MANAB
Разрабатываю на C#: Web, Desktop, Gamedev
Заведи класс, который будет на апдейте пересчитывать множитель скорости в зависимости от прошедшего времени на данном уровне с публичным свойством типа
public float GameSpeedMultiplier {get; private set;}
и прокидывай этот скрипт во все классы PipeMode и домножай на этот множитель.
Вариант 2 - изменять частоту вызова Update и значение Time.deltaTime, но это вариант хреновый, может аукнуться в остальной логике или далее по игре.
Ответ написан
red-cat-fat
@red-cat-fat
студент
public class PipeMove : MonoBehaviour
{
    public float speed; // скорость для движения труб
    public float chengeSpeed = 0.01; //переменная скорости изменения величины в секунду т.е. через секунду скорость будет speed + chengeSpeed

    void Update()
    {
        speed += Time.deltaTime * changeSpeed; //перём deltaTime - время между кадрами и умнажаем на скорость изменения переменной
        transform.Translate(-speed * Time.deltaTime, 0, 0); // движение труб
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы