Как пустить лучи во все стороны с помощью Raycast2D Unity

У меня есть куб, и мне просто надо сделать, что бы он пустил лучи во все стороны. Лучи в вверх, вниз, влево, право я уже сделал. А вот как пустить их под углом? Можете помочь? кубик и лучи


Ответы (1 шт):

Автор решения: Yaroslav
public class Foo : MonoBehaviour
{
    [SerializeField] private int _count = 16;
    [SerializeField] private LayerMask _mask = 1 << 0; // Default layer
    [SerializeField] private float _distance = Mathf.Infinity;

    private void Start ()
    {
        RaycastHit2D[] hits = GetAroundHits(transform.position, _count, _mask, _distance);
    }

    private RaycastHit2D[] GetAroundHits (Vector2 origin, int count, LayerMask mask, float distance = Mathf.Infinity)
    {
        float angleStep = 360f/(float)count;
        var hits = new RaycastHit2D[count];
        for (int i = 0; i < count; i++) 
        {
            float angle = i*angleStep;
            float radian = angle*Mathf.Deg2Rad;
            Vector2 direction = new Vector2(Mathf.Cos(radian), Mathf.Sin(radian));
            hits[i] = Physics2D.Raycast(origin, direction, distance, mask);
        }
        return hits;
    }
}

Но если вам нужно пускать лучи во все стороны, скорее вего вы занимаетесь какой-то фигней. Лучше опишите проблему которую вы пытаетесь решить столь варварским способом.

→ Ссылка