@Default_Nickname

Unity зависает и не закрывается при неправильном коде, что делать?

мне надо сделать так, чтобы в прыжке при нажатии определенной кнопки игрок сильно "ударялся" об землю(метод борьбы с противниками, как в Марио) у меня есть код, увеличивающий силу тяжести объекта(игрока), когда он находится в воздухе, вот часть кода, используемая для прыжка и атаки:
if (Input.GetKeyDown(KeyCode.Space) & GroundCheck.canJump == true) 
        {
            rb.velocity = new Vector2(rb.velocity.x, 20);
        }
        
        else if(Input.GetKeyDown(KeyCode.Space) & GroundCheck.canJump == false)
        {
            while(GroundCheck.canJump == false)
            {
                rb.gravityScale = 20;
            }
            
        }


момент, где используется цикл while, Юнити зависает и закрывается только через диспетчер задач, если я заменю while на if, то все нормально, но мне нужно сделать так, чтобы пока игрок не коснулся земли, то сила тяжести была 20, а уже потом стала 5(стандартной)
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Естественно при while(true) у тебя юнити зависнет, потому что код юнити не выполняется, а ждёт когда твой цикл завершиться.
Тебе не нужен никакой свой while, он у тебя уже есть от юнити, называется Update.
Ответ написан
Ваш ответ на вопрос

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

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