Привет всем! У меня появился один вопрос. Суть заключается в том что в 2d игрульке есть враги. Вид сверху. Так вот, если враги за областью экрана, то по краям экрана, ну или вокруг игрока должны быть маркера, которые показывают, откуда именно летит враг.
Все просто. Есть у Unity методы OnBecameInvisible() и OnBecameVisible() срабатывают когда объект покидает область видимости камеры и попадает в него. Нужно на ваших врагов повесить скрипт где в этих методах вы будете отрисовывать и прятать маркеры по краю камеры. Саму отрисовку уже нужно придумать самому, но там не сложно просто считывать х,у позицию объекта и рассчитывать по этим данным позицию маркера с учетом того чтобы он был на краю камеры. Ну и как совет в этих методах прописать функционал по разгрузке сцены когда объект ее покидает, отключение рендера объекта и ненужных скриптов...
WalloutDay Проводите линию от врага за экраном к герою/центру экрана, находите пересечение с линией-краем экрана, в точке пересечения рисуете спрайт. Геометрия, школьный курс. Если кстати относительно центра экрана считать - то можно через прямоугольные треугольники решать - один треугольник с вершиной во враге (вроде все стороны известны), второй - с вершиной в нужной вам точке, которая неизвестна. Общая вершина - центр, 1 катет и гипотенузы лежат на одних и тех же прямых.
WalloutDay: скилл в программировании определяется циферками на тостере? Ну ладно.
А по факту - решение уже предложили - для каждого противника искать точку пересечения линии, идущей от него к персонажу, с краем экрана.
Геометрическую сторону вопроса уже более менее описали, но вот в массив лучше никого не закидывать, у нас тут ООП/КОП. На врага повесить скрипт, который проверяет (каждый кадр, видимо), находится ли он за пределами экрана, и если да, то перемещающий свой маркер на вычисленные координаты. (с точки зрения производительности лучше будет некий pool маркеров, но можно и просто в префаб врага его личный маркер положить и двигать/включать/отключать).