@YakutD

Как отправить луч из края объекта?

Здравствуйте, делаем, своеобразный тетрис, и для определения может ли фигура падать дальше, используем
такой код
RaycastHit2D hitDown = Physics2D.Raycast(transform.position, Vector2.down, 0.5f);
Debug.Log(hitDown.collider.name);

Тем не менее, луч возвращает имя самой фигуры. Коллайдер представляет собой квадрат. Подскажите, что я делаю не так,
полагаю дело в первом аргументе рейкаста, но не могу сообразить как задать чтоб луч вылетал ровно из края объекта.
  • Вопрос задан
  • 432 просмотра
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
я просто оставлю здесь мнение, вдруг вам поможет что-нибудь осознать) - что делать в тетрисе проверку путем "прощупывания лучом" - довольно таки странно.
и как оно покрывает варианты для горизонтальной палки? лучи из каждого края? а если палка на ПИК серединой наткнулась?

а конкретно по вопросу
transform.position - вернет вам Pivot (Центр объекта).
как таковые крайние точки можете задать отдельно в фигурах, просто разместив пару дочерних Transform, и ссылки на них сохранив в какой то контейнер.
Если у вас фигуры - это цельный кастомный меш - то можно еще посмотреть в сторону
https://docs.unity3d.com/ScriptReference/Mesh-boun...
чтобы узнать граничные точки меша.

ну а узнав точки из которых луч хотите послать - просто подставляйте из координаты вместо transform.position.

если все вышеописанное вызывает недоумение и непонимание - то англ. и туториалы по юнити - зарабатывать шишки, то есть опыт))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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