Unity 2D: Смена изображений с большим количеством вариаций

В моей игре есть 5 разноцветных объектов-квадратов. При нажати на кнопку они могут оказаться в одной из 5-и случайных позиций (points). Например, в 1 point может оказаться 2 квадрата, в 2 point - 1 квадрат, в point 3 - 0 квдратов, в point 4 - 2 квадрата, в point 5 - 0 квадратов. В зависимости от положения квадрата, int переменной room присваивается значение point, в которой квадрат находится. То есть, если квадрат1 переносится в point3, то room = 3. Все поинты указаны в массиве, и в коде это выглядит так (код вешается на каждый квадрат):

if (gameobject.transform.position == points[1].transform.position) 
{
  room = 1;
}
//и так далее

У меня есть картинки пяти позиций (points), каждая стилизованна в виде игровой локации. И есть куча вариаций, где, например, в локации 0 (points[0]) стоят синий и красный квадрат, где стоят красный и зелёный квадрат, где стоит один только жёлтый квадрат, где стоят все квадраты и т. д. Этих картинок у меня очень много, и вручную всё прописывать очень долго, например:

if (red.room == 2 && dlue.room != 2 && orange.room != 2  && green.room != 2  && yellow.room != 2)
{
locationTwoOnlyRedSquare.setActive(true);
}

Скрипт вешается на пустышку, в которой указываются все квадраты (public SquareScript red, orange, yellow, green, blue;) и все вариации локаций (ввиде GameObject). В данном случае название цвета - квадраты, locationTwoOnlyRedSquare - картинка, где во второй локации стоит только красный квадрат:


public GameObject locationTwoOnlyRedSquare

В случае, если условие верное, все картинки выключаются (этого не стал писать в скрипте, слишком длинным бы получился), и включаеися нужная картинка. Игрок может переключать то, на какую локацию сейчас смотреть. Если он нажал на 3-ю локацию, то включается (setActive) пустышка с номером локации, а все вариации расположения квадратов в ней являются дочерними объектами. Все эти дочерние объекты должны выключаться, кроме того, который показывает текущее положение квадратов.

Главный вопрос: Это всё очень долго делать с каждой картинкой и с каждым вариантом. Есть ли какой то способ автоматизировать смену картинок в зависимости от положения, не приходилось вручную расписывать каждый вариант?

Если непонятно объяснил, нужны скрипты или что-то ещё - напишите, постараюсь дополнить

Изменено 1: Поступил вариант наложить квадраты на локации в формате png, чтобы не пришлось вручную рисовать все картинки. Отвечаю: Для простоты написал "квадраты". На деле это будет фнаф-пародия, где небольшая группа людей будет фотаться в разных локациях, так что прозрачный фон - не вариант, так как тут не получится нормально встроить пнг. На деле локаций будет больше, но не все " квадраты" будут на них находиться, а лишь некоторые. Но не в этом суть, главное - максимально оптимизировать и автоматизировать процесс смены изображений. До этого пропорачивал такое, но персонажей, которые передвигаются по локациям, было всего 2, а сейчас - 5.


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