Как пустить лучи во все стороны с помощью 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;
}
}
Но если вам нужно пускать лучи во все стороны, скорее вего вы занимаетесь какой-то фигней. Лучше опишите проблему которую вы пытаетесь решить столь варварским способом.