Задать вопрос
  • Как сделать ускорение свободного падения(Unity)?

    StrannikY
    @StrannikY Автор вопроса
    Программирую на C#, часто загораюсь идеями,учусь.
    Я придумал,как это решить.
    В общем,все решается таким скриптом:
    if (!OnFloor) #если игрок НЕ стоит на земле
            {
                Physics.gravity = Vector3.Lerp(Physics.gravity, new Vector3(0, -120f, 0), Time.deltaTime); #постепенно увеличивает гравитацию.
            }
            else
            {
                Physics.gravity = new Vector3(0, -9.81f, 0); #Возвращает гравитацию в исходное положение при падении на землю
            }


    new Vector3 - это максимальная скорость падения. Не рекомендую значение устанавливать больше (0, -200f, 0),потому что персонаж может пролетать сквозь тонкие объекты.

    new Vector3 можно заменить на Physics.gravity * 1.5f , но в таком случае при падении с высокой горы ваш персонаж провалится сквозь землю.

    Time.deltaTime вы можете умножить на какое-нибудь число (чем больше число,тем быстрее разгон),тогда получится так: Time.deltaTime * 2f
    Ответ написан
    Комментировать