Символ перемещается медленно при переходе на движущуюся платформу

#c# #unity3d

#c# #unity3d

Вопрос:

Я работаю над 2D-платформером в Unity. Мой персонаж движется, применяя скорость к твердому телу, и работает так, как я хочу, для точного управления.

Когда персонаж находится на движущейся платформе, я привязываю персонажа к движущейся платформе, чтобы персонаж оставался включенным, пока платформа движется. Вот код, который находится на движущейся платформе

     private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Player")
        {
            collision.collider.transform.SetParent(transform);
        }
    }
    
    private void OnCollisionExit2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Player")
        {
            collision.collider.transform.SetParent(null);
        }
    }
 

Я также использую transform.position из одной позиции в другую для перемещения платформы.

Вот в чем проблема. Символ работает отлично, только если скорость платформы равна 0. Если платформа вообще движется, персонаж будет двигаться как слизняк, когда идет по платформе. Есть идеи о том, как исправить проблему, или есть способ заставить персонажа кататься на движущейся платформе, не привязывая его к ней?

Редактировать: я забыл включить это ранее. Я проверил, будут ли физические материалы иметь значение. Я включил материал по физике трения 0 для персонажа, платформы и обоих одновременно. Ни одна из комбинаций не имела никакого значения. Игрок все еще движется медленно, пока платформа движется.

Комментарии:

1. Вы когда-нибудь находили решение для этого?

Ответ №1:

Если вы перемещаете своего персонажа с помощью силы и жесткого тела, иерархия и то, кто является родителем, не будут иметь большого влияния, поскольку движение обеспечивается силой, это связано с физикой. Если вы манипулируете преобразованием в коде для движения, это было бы важно, но если движение вызвано силами, я думаю, что это не так. Я бы проверил трение физических материалов игрока и платформы, чтобы определить, как движение элементов относится друг к другу.

Комментарии:

1. Я забыл упомянуть, я попытался добавить 0 материалов по физике трения как к персонажу игрока, так и к платформе. Это ничего не изменило.