В обучающем проекте 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;
}
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024