Как сделать так, чтобы персонаж автоматически поднимался на блок? Unity, C#

Всем привет! Пару недель работаю с Unity 3D и задался вопросом: как сделать так, чтобы персонаж автоматически поднимался при беге на один блок?

[Сейчас персонаж просто упирается, если встречается с блоком] (https://i.sstatic.net/vTsNOzSo.png)

Я понимаю, что можно было бы сделать блоки меньше, тогда персонаж будет "заскальзывать" за счет коллайдера, но как реализовать это, если блок таких размеров?

Сейчас скрипт передвижения выглядит так:

void FixedUpdate()
    {
        MovementLogic();
        JumpLogic();
    }

    private void MovementLogic()
    {
        float horInput = Input.GetAxis("Horizontal") * moveSpeed;
        float verInput = Input.GetAxis("Vertical") * moveSpeed;

        Vector3 camForward = mainCam.forward;
        Vector3 camRight = mainCam.right;

        camForward.y = 0;
        camRight.y = 0;

        Vector3 forwardRelative = camForward * verInput;
        Vector3 rightRelative = camRight * horInput;

        Vector3 moveDirection = forwardRelative + rightRelative; //направление движения с учетом положения мыши

        _anim.SetBool(name:"isRunning", value:moveDirection.magnitude > 0.1f);

        _rb.velocity = new Vector3(moveDirection.x, _rb.velocity.y, moveDirection.z);

        if (moveDirection.magnitude > 0.1f)
        {
            Quaternion rotation = Quaternion.LookRotation(moveDirection.normalized);
            rotation.x = 0;
            rotation.z = 0;
            transform.rotation = Quaternion.Lerp(transform.rotation, rotation, rotationSpeed * Time.fixedDeltaTime);
        }
    }

Ответы (0 шт):