2D ограничение расстояния - PullRequest
1 голос
/ 26 февраля 2011

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

float xDistance = hinge.transform.position.x  - target.transform.position.x;
float yDistance = hinge.transform.position.y  - target.transform.position.y;
float newdistance = Mathf.Sqrt( xDistance * xDistance + yDistance * yDistance );
float con = ( newdistance - maxDistance) / newdistance;
Vector3 moveTarget = new Vector3( xDistance * 0.5f * con , yDistance * 0.5f * con, 0.0f );
hinge.rigidbody.MovePosition( hinge.transform.position - moveTarget );
target.rigidbody.MovePosition( target.transform.position + moveTarget );

Но это не учитывает массу / силу или какие-либо приспособления.Вы можете видеть здесь, я хочу движение по X / Y и вращение только по Z.

Помощь?

1 Ответ

1 голос
/ 26 февраля 2011

Я знаю, что это не совсем ответ, но кнопка добавления комментария отсутствует.У меня все хорошо с Unity, но я никогда не использовал Unity2D, и я не могу сказать, что когда-либо видел «MovePosition» раньше.

Вам бы больше повезло с поиском ответа, задав этот вопрос http://answers.unity3d.com [Опять же, я прошу прощения за то, что это не ответ.Я бы предпочел, чтобы это был комментарий, но tkat не вариант]

...