#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 материалов по физике трения как к персонажу игрока, так и к платформе. Это ничего не изменило.