Как сделать так, чтобы персонаж автоматически поднимался на блок? 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);
}
}