He estado intentando de todo para lograr que una articulación a distancia 2D funcione en Unity. Quiero la rotación libre tanto para el cuerpo con la articulación como para el cuerpo conectado, también necesito masa y otras restricciones que se cumplan, como fijar la posición de un cuerpo rígido. Lo he intentado durante días, sin suerte al configurar ningún tipo de unión. Probé una restricción verlet usando:
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 );Pero esto no tiene en cuenta la masa/fuerza ni ningún accesorio. Puede ver aquí que quiero movimiento en X/Y y rotación solo en Z.
¿Ayudar?
Sé que esto no es realmente una respuesta, pero el botón Agregar comentario no está allí. Soy bueno con Unity, pero nunca he usado Unity2D y no puedo decir que haya visto "MovePosition" antes.
Tendría más suerte si encuentra una respuesta si pregunta esto en http://answers.unity3d.com [Nuevamente, me disculpo por no ser una respuesta. Preferiría que esto fuera un comentario, pero tkat no es una opción]