Итак, у меня есть сборный дом, в котором есть несколько экземпляров на моем уровне. Каждый экземпляр имеет свои собственные атрибуты, которые устанавливаются в редакторе через скрипт. Один из атрибутов задает положение игрового объекта. Однако всякий раз, когда я нажимаю кнопку воспроизведения, все экземпляры по умолчанию возвращаются к (0, 0), что является значением по умолчанию в префабе. Как сделать так, чтобы экземпляры сохраняли свою позицию в редакторе, когда я нажимаю кнопку воспроизведения вместо перехода к значению префаба?
РЕДАКТИРОВАТЬ: Чтобы уточнить: у меня есть сетка 8x8, в которую я помещаю свои объекты. Я создал переменную pos, которая хранит Vector2 от (0,0) до (8,8). Переменная «pos» меняет позицию преобразования объекта. Например, если я установлю pos = (0,0), объект будет go равным (-4,4). Значение pos по умолчанию для всех моих объектов (0,0). Когда я перетаскиваю объект в игру (в редакторе), он меняет позицию и значение трансформации. Когда я вхожу в режим воспроизведения, позиция возвращается к (0,0), поэтому все объекты перемещаются в (-4,4). Единственный способ предотвратить это - вручную изменить значение pos каждого объекта, чтобы переменная была выделена жирным шрифтом, и тогда она не вернется обратно. Есть ли способ, которым я могу сделать так, чтобы значение pos никогда не возвращалось назад? (Всегда отделяйте от значения prefab pos)
Этот код изменяет переменную "pos", когда я перетаскиваю свой объект на сцену:
private void ChangePosition()
{
t.position = new Vector2(Mathf.Round(t.position.x * 2) / 2, Mathf.Round(t.position.y * 2) / 2);
gridPosition.Set(Convert.ToInt32(4.5f + t.position.x), Convert.ToInt32(4.5 - t.position.y));
tile.pos = gridPosition;
}
Когда я нахожусь в В редакторе переменная pos изменяется правильно, но когда я нажимаю кнопку воспроизведения, она меняется на pos на (0,0), потому что это то же самое, что и pos для префаба.