Как исправить баг с ходьбой?

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

RigidBody:
600055c8ab7f7473730525.png
Колайдер:
60005613ee6aa397797354.png

Скрипт ходьбы:
public float speed = 10f;
    Rigidbody2D rb;
    public float move = 0f;
    public bool isGround = false;
    public float jumpForce = 6f;

void Update()
    {
        if(move == 0) {
            animator.SetFloat("Speed", 0);
        }else animator.SetFloat("Speed", Mathf.Abs(move));

        transform.Translate(transform.right * move * speed * Time.deltaTime);
    }

public void Jump() {
        if (isGround && !isUp && !PausePanel.activeSelf) {
            rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
            animator.SetTrigger("TakeOf");
        }
    }
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ответы на вопрос 2
DanceM
@DanceM Куратор тега Unity
Кто хочет -ищет способ, кто не хочет -ищет причину
Вы в коде, вручную, заставляете персонаж сдвигаться вправо игнорируя физику. Что он и делает, пробивая коллайдер. Так что всё ок, бага тут нет.

Двигайте влево/вправо не Transform, а Rigidbody персонажа.
Ответ написан
CHIDWI
@CHIDWI
Изучаю C#, Unity3D
В целом предыдущий ответ полностью правильный. Если хочется делать передвижение именно так, то можно добавить Vector3.up. что бы героя всегда тянуло немного вверх, визуально это не заметно, но ходить по "наклонной" позволяет)).
Ответ написан
Ваш ответ на вопрос

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

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