PragmaGames
@PragmaGames
Увлекаюсь Unity.

Как расположить врагов в точках параболы?

Всем привет. Мне понравилась механика в одной игре, пытаюсь ее реализовать (волнообразное движение блоков за персонажем). Я смог ее повторить, только блоки у меня откланяются линейно, а на скриншоте на сколько я понимаю по одной ветке параболы (Сразу смещение маленькое, потом увеличивается). Хотелось бы увидеть формулу по которой можно найти точки в которых должны располагаться блоки. Сейчас код имеет такой вид :
// Позиция в которой располагается текущий блок
            var nodeStoragePoint = _storagePoints.First;
            
            // i используется для того что бы предать смещение блоку
            for (var i = 1; i <= _storagePoints.Count; i++)
            {
                // _blockStoragePoint точка за спиной игрока от которой начинаются блоки 
                // по y блоки не двигаются, позиция по y задается при подборе блока и после 
                // не изменяется
                var x = (_blockStoragePoint.position.x - nodeStoragePoint.Value.position.x) / i;
                var z = (_blockStoragePoint.position.z - nodeStoragePoint.Value.position.z) / i;
                
                nodeStoragePoint.Value.position += new Vector3(x, 0f,z);
                nodeStoragePoint.Value.rotation = _blockStoragePoint.rotation;

                nodeStoragePoint = nodeStoragePoint.Next;  
            }

            MoveBlocks()
            {
                   // Движение блоков к своей точке через изменение позиции в moveTorwards
            }

61e151cda2345808450252.jpeg
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
hint000
@hint000
у админа три руки
Это не похоже на параболу (перспектива тут какая-то дикая, но всё равно тень от верней части параболы не могла быть настолько прямой (иными словами, я тут вижу некую асимптоту)). Скорее похоже на x=a+b*atan(c+d*z) (нужно подобрать a, b, c, d).
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы