#c# #unity3d #rigid-bodies
Вопрос:
В настоящее время пытаюсь создать очень простую систему стабилизации для тряпичной куклы с использованием перевернутого маятника. По сути, я могу заставить маятник следовать за рэгдоллом игроков только в том случае, если он не использует Mathf.Функция PingPong, которая является тем, как функционирует маятник. Он функционирует, перемещая основание маятника вверх и вниз очень быстро, что удерживает вес маятника в центре, если только вес тела игрока не выводит его из равновесия. В следующем коде я пытаюсь получить позицию сборного элемента player и заставить _base следовать этой позиции, но в то же время он выполняет пинг-понг и присваивает себе ту же позицию, перезаписывая начальное движение.
Как бы я мог заставить _base Rigidbody следовать за Rigidbody, который я прикрепил к родительскому объекту в сборке, одновременно выполняя его функцию pingpong?
Вот мой код:
using UnityEngine;
public class Pendulum : MonoBehaviour
{
[SerializeField]
public Rigidbody _base;
public Rigidbody _player;
[Space]
[SerializeField]
public float _speed = 200;
public Vector3 pointA;
public Vector3 pointB;
void Start()
{
_base = GetComponent<Rigidbody>();
pointA = new Vector3(0, .2f, 0);
pointB = new Vector3(0, .5f, 0);
}
void FixedUpdate()
{
_base.MovePosition(_TestStabliziedPlayer.position);
float time = Mathf.PingPong(Time.time * _speed, 1);
transform.position = Vector3.Lerp(pointA, pointB, time);
}
}
Ответ №1:
Я предлагаю использовать Hinge Joint
для соединения двух жестких тел в виде цепочки, вы можете посмотреть документацию unity о шарнирном соединении здесь: Документация Unity
Вы можете использовать этот учебник для своего проекта, я думаю, он будет очень полезен
Комментарии:
1. Я должен был уточнить, что я уже пробовал использовать шарниры, но, возможно, я неправильно использовал шарнирное соединение. Я изучу это и посмотрю, так ли это, иначе у меня все еще может возникнуть проблема
2. : v если у вас возникли проблемы с шарнирным соединением, просто прокомментируйте ниже, я вам помогу
3. Я не думаю, что суставы работают для кинематических жестких тел… @NawtZach действительно ли жесткое тело должно оставаться кинематическим? Как только вы прикрепите соединение, вы также можете сделать его некинематическим
4. @derHugo Я попытался это сделать, но это заставляет основание маятника вращаться, и когда я фиксирую его ось вращения, это полностью разрушает систему. Стабилизация маятника работает только тогда, когда основание маятника кинематическое.