Могу ли я сделать переменную экземпляра независимой от переменной prefab? - PullRequest
0 голосов
/ 30 марта 2020

Итак, у меня есть сборный дом, в котором есть несколько экземпляров на моем уровне. Каждый экземпляр имеет свои собственные атрибуты, которые устанавливаются в редакторе через скрипт. Один из атрибутов задает положение игрового объекта. Однако всякий раз, когда я нажимаю кнопку воспроизведения, все экземпляры по умолчанию возвращаются к (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 для префаба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...