Я делаю тетрис, и у меня возникают проблемы с работой ротаций для группы блоков.Мои группы блоков состоят из 4 блочных спрайтов, которые являются дочерними для пустого игрового объекта.
![enter image description here](https://i.stack.imgur.com/5xxKe.png)
Я перемещаю / поворачиваю блоки, обновляя положение / поворотпреобразования родительского объекта, проверка того, что новая позиция находится в сетке, а затем обновление отдельных дочерних блоков.
this.transform.position += new Vector3(1, 0);
if (IsValidGridPos())
UpdateGrid();
this.transform.Rotate(0, 0, -90);
if (IsValidGridPos())
UpdateGrid();
Для каждой группы у меня есть центральная точка, куда я хочу, чтобы группа переместилась /вращаться вокругНа рисунке ниже показано, где находятся мои центральные точки для каждой группы.
![enter image description here](https://i.stack.imgur.com/q0WyH.png)
Это работает, как и предполагалось, для большинства групп, за исключением прямой линии.и квадратная группа.Поскольку центральные точки обеих групп не находятся в середине дочернего блока, он отбрасывает позицию блоков внутри 2D-массива, который я использую для хранения всех позиций блоков.
Есть ли лучший способ обработать движение группы /вращение