Unity: Переместить объект на новые координаты

В обучающем проекте Tanks tutorial в игре участвуют два игрока. Одному играть нельзя. Точнее можно, но не интересно, т.к. второй игрок будет стоять неподвижно. Я добавил еще один вражеский танк и к нему добавил компонент Nav Mesh Agent. Благодаря этому вражеский танк обрел возможность перемещаться самостоятельно, но после начала нового уровня он оставался на месте «гибели». Чтобы его потом перемещать на точку, с которой он стартовал, я перед началом уровня сохранял его координаты в переменную класса Transform. Код бы примерно таким:

Transform m_Spawn; 
m_Spawn = gameObject.transform;

Восстанавливал положение объекта на сцене я примерно также, просто поменяв переменные местами. Однако после вызова моей функции Reset(), танк либо появлялся в том же самом месте, либо в рандомной позиции. Как и в случае с изменением альфа-канала изображения, тут тоже нельзя было напрямую изменять компонент Transform. Хоть в этот раз компилятор и не выдавал никаких ошибок, тем не менее изменения координат не происходило правильно.

Поскольку знак ‘=’ в случае с классом не копировал значение, а просто копировал ссылку на него, то получалось, что сохраненная переменная изменялась вместе с оригиналом, а значит этот способ не подходил.

 

Будем сохранять и восстанавливать координаты по отдельности:

void OnEnable ()
{
    m_SpawnPoint = gameObject.transform.position;
    m_SpawnRotation = gameObject.transform.rotation;
}
public void Reset()
{
  gameObject.transform.position = m_SpawnPoint;
  gameObject.transform.rotation = m_SpawnRotation;
}