Я борюсь с воспитанием персонажей на движущихся платформах в 2D-игре.
Я использую OnTriggerEnter2D() для обнаружения, когда игрок наступает на движущуюся платформу. Он меняет своего родителя на эту платформу. С обычными движущимися платформами (влево-вправо) все работает нормально, если персонаж стоит на этой платформе, то он движется параллельно ей, может ходить, прыгать и т.д. Проблема возникает, когда я использую платформу, которая висит на двух веревках, связанных с HingeJoint2Ds. Игрок должен раскачивать эту платформу, идя влево и вправо. При использовании ввода с клавиатуры все работает нормально, но при использовании контроллера сенсорного ввода, когда игрок не двигается, персонаж остается на одном месте и не двигается с этой платформой. В панели иерархии все правильно, игрок является потомком платформы и платформа движется, а персонаж нет.
Для перемещения персонажа я использую это: (часть контроллера персонажа)
float move = Input.GetAxis ("Horizontal”);
rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y);
То же самое для клавиатуры и сенсорного ввода. Отличие только в получении переменной move. Решение для движущихся и качающихся платформ такое же. (иерархия, родители, коллайдеры и т.д.)
Я борюсь с этим в течение нескольких часов, но я понятия не имею, что может быть не так.
Спасибо за любую помощь.