Задать вопрос
@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);

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

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

Похожие вопросы