Свойство BoxCollider не перемещается при добавлении силы к жесткому телу персонажа (hardbody.AddForce) - PullRequest
0 голосов
/ 21 октября 2019

Я пытался добавить функцию прыжка в игру, чтобы у персонажа была анимация прыжка и использовать функцию 'solidbody.AddForce', чтобы фактически заставить его прыгать. Чтобы персонаж вернулся в исходное положение, оннужно столкнуться с чем-либо вокруг, чтобы превратить bool 'isJumping' в ложное, что делает персонаж снова бездействующим. Однако я заметил, что будет такой сбой, когда анимация ходьбы персонажа будет зацикливаться при приземлении. Позже я увидел, что BoxCollider не двигался вверх вместе с персонажем, поэтому невозможно было вызвать каждое событие на основе столкновения.

Сначала я попытался связать BoxCollider с .AddForce (Player.BoxCollider.AddForce ()),но безрезультатно. Я также попытался выключить BoxCollider и снова включить его, но этот метод также не сработал.

Вот код команды Jumping:

    if (Input.GetKeyDown(KeyCode.Space) && isJumping == false)
    {
        isJumping = true;
        thePlayer.GetComponent<Animator>().Play("Jump");
        rb.AddForce(new Vector3(0, 4, 0), ForceMode.Impulse);
        rb.AddForce(new Vector3(0, -4, 0), ForceMode.Impulse);
    }

И этокод для любого вида коллизий:

   void OnCollisionEnter(Collision col)
{
    isJumping = false;
}

Я ожидаю, что триггер isJumping будет считаться ложным.

1 Ответ

0 голосов
/ 22 октября 2019

Ваш игрок в конечном итоге выйдет из строя, потому что к нему прикреплен компонент твердого тела, вам не нужно добавлять силы, чтобы он вышел из строя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...