@Falconoff

Как с помощью рейкаста запретить персонажу выходить из коллайдеров?

2д топ-даун игра. Суть в том, что персонаж может ходить только по блокам, которые может ставить. Коллайдеры висят и на персонаже и на блоках. Как сделать так, чтобы персонаж не мог выходить за пределы этих коллайдеров?
hit = Physics2D.BoxCast(transform.position, boxCollider.size, 0, new Vector2(0, moveDelta.y), Mathf.Abs(moveDelta.y * Time.fixedDeltaTime), LayerMask.GetMask("Block"));
if (hit.collider != null) transform.Translate(0, moveDelta.y * playerSpeed * Time.fixedDeltaTime, 0);

hit = Physics2D.BoxCast(transform.position, boxCollider.size, 0, new Vector2(moveDelta.x, 0), Mathf.Abs(moveDelta.x * Time.fixedDeltaTime), LayerMask.GetMask("Block"));
if (hit.collider != null) transform.Translate(moveDelta.x * playerSpeed * Time.fixedDeltaTime, 0, 0);

Написал такой код, но персонаж выходит за коллайдер блока, пока не выйдет из него полностью. А мне надо, чтобы коллайдер блока не выпускал коллайдер персонажа из себя, так и плюс если появляется еще один блок рядом, то персонаж мог через них спокойно проходить
  • Вопрос задан
  • 35 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Hixac
Понимаю только с 10-ого раза
Не проще уж сделать наоборот? Ограничить движение персонажа коллайдерами.
Зачем так усложнять?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
27 июл. 2021, в 22:00
25000 руб./за проект
27 июл. 2021, в 21:59
1500 руб./за проект
27 июл. 2021, в 21:54
15000 руб./за проект