@Bur-Burito

Как в Unity в режиме 2D определить расстояние до преграды?

В режиме 3D я, по Хокингу, создавал луч и хит, который инициализировался в методе Physics.RayCast(ray, out hit)
в Physics2D.RayCast нет расширения с подобными параметрами. Собственно, оно и логично, потому как конкретно в моем случае между преградой и персонажем есть объекты, обозначающие землю ( вид сверху). Собственно, как действовать? Или где можно что-то прочитать, чтоб это узнать?
  • Вопрос задан
  • 653 просмотра
Решения вопроса 2
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Странно, конечно, что у них двадэшное и тридэшное API так отличается, но при желании можно написать свою обёртку:
using UnityEngine;

public static class Physics2DUtility
{
    public static bool Raycast(Ray2D ray, out RaycastHit2D hit)
    {
        hit = Physics2D.Raycast(ray.origin, ray.direction);
        return hit.collider != null;
    }
}

Касательно других объектов между преградой и источником рэйкаста, такие проблемы решаются с помощью масок. Просто засуньте все объекты преград в один слой, а потом используйте этот слой во время рэйкаста.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы