

Unity 2D Помогите
Короче, решил значит я создать врага, который будет стрелять лазером. Вообще не представляю как это закодировать. Возможно это можно сделать с помощью отрисовки Gizmos? Но даже если это так, то как сделать чтобы линия в виде лазера рисовалась до первого коллайдера? Чтобы лазер при столкновении со стеной просто заканчивался. Помогите пожалуйста, до этого с отрисовкой линий никогда не работал.
Ты можешь использовать `RaycastHit2D` и `Physics2D.Raycast` для этого. Этот метод отправляет луч от начальной точки в определенном направлении и возвращает информацию о первом столкновении с коллайдером.
```csharp
void Update() {
RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.up);
if (hit.collider != null) {
Debug.DrawLine(transform.position, hit.point, Color.red); //Отрисовка линии до точки столкновения
}
}
```
В этом примере `transform.position` - это начальная точка (позиция врага), `transform.up` - это направление (вверх относительно врага). `Debug.DrawLine` используется для отрисовки лазера. Вместо него можно использовать `LineRenderer` для более контролируемой отрисовки линии.
Помни, что этот код нужно поместить в скрипт, привязанный к объекту врага, и этот объект должен быть направлен вверх, чтобы `transform.up` указывало в правильном направлении.