Как сделать анимацию полета стрелы к цели
Я хочу, чтобы стрела, выпускаемая башней в игре типа TowerDefence, летела не по прямой к врагу, а по дуге: вверх, вниз. Я сделал сам полет и вращение. Вращается стрела так, что на какое бы расстояние она ни летела, все равно успевает провернуться ровно1 раз. Но проблема в том, что у меня стрела крутиться против часовой стрелки, а это подходит только если враг/соперник/монстр находится слева от башни. Если он справа, то стрела, физически корректнее должна крутиться по часовой стрелке. Как правильнее это реализовать? Просто сравнивать координаты по X и задавать вращение, или есть какой-то более умный способ?
Ответы (2 шт):
(Может я чего-то не понимаю в специфике разработки игр)
Физически (IRL) есть "ускорения свободного падения", и задачки про бросание кирпичей в школьных учебниках с формулами. Должно получиться очень естественно.
А хвост у стрелы (если проще) можно повернуть по направлению к прошлой позиции.
Чисто физику можно сделать если каждый кадр направлять стрелу вниз по формуле ускорение свободного падения (примерно равно 9.8) * дельту кадра, а направление по производной, если мат часть не подкачает, или просто повернутся задом к преведущей позиции. Если на Юнити, то можна поставить компонент ригидбоди и цент масс на наконечнике (https://docs.unity3d.com/ru/2019.4/ScriptReference/Rigidbody-centerOfMass.html)