@18382774

Как сделать проверку касания персонажем земли в Unity 2D?

Я делаю игру под андроид на Unity 2D. У меня есть код прыжка персонажа:
public void Jump(bool isJump)
    {
        isJump = groundCheck;

        if (groundCheck)
        {
            rb2d.velocity = new Vector2(rb2d.velocity.x, jumpPower);
        }

    }

Я пытался сделать проверку, стоит ли персонаж на земле таким способом:
void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "ground")
        {
           groundCheck = true;
       }
    }

Но так прыжок вообще не работает. Как мне сделать так,чтобы персонаж мог прыгнуть, только если он стоит на земле.
Я в программировании на C# новичок.Помогите пожалуйста.
  • Вопрос задан
  • 3014 просмотров
Пригласить эксперта
Ответы на вопрос 1
VictorRo
@VictorRo
Programmer, game designer
Не работает, скорее всего, потому что изначально переменная groundCheck равна false в объявлении надо задать её сразу true, потому что изначально персонаж уже находится на земле:
bool groundCheck = true;
А после прыжка сразу изменить на false:
if (groundCheck)
        {
            rb2d.velocity = new Vector2(rb2d.velocity.x, jumpPower);
            groundCheck = false;
        }
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы