@Vlad122

Как записать движения персонажа в unity2D?

Здравствуйте, я хотел бы записать движение игрока, после чего к примеру в следующем раунде создать клона и воспроизвести на нём движения записанные в первом раунде. Я не очень понимаю как можно реализовать запись и воспроизведение движений. Заранее спасибо за ответ)
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
PragmaGames
@PragmaGames
Увлекаюсь Unity.
Самый наивный вариант это сделать очередь из Transform и записывать каждое изменение позиции игрока в эту очередь. Потом когда нужно воспроизводить действие извлекаем элементы и передаем в вашу функцию движения. Данный вариант брошен навскидку и имеет ряд недостатков, один из них потребляемая память на хранения всех позиций. Улучшить его можно тем что мы будем сохранять ключевые позиции игрока, а промежуточные данные генерировать исходя от того откуда идем , куда идем и каким образом. Пример ключевых позиций : персонаж начал идти , потом перешел на бег, закончил бег, начало прыжка, пиковая позиция прыжка, приземление.

Transform player;
Queue<Transform> positions;

private void Start()
{
     player = GetComponent<Transform>();
     positions = new Queue<Transform>();
}

private void Update()
{
    Move()
}

private void Move()
{
     // move
    positions.Enqueue(player.transform);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы