1

Unityで2D距離ジョイントを機能させるためにあらゆることを試みてきました。ジョイントのあるボディと接続されたボディの両方を自由に回転させたいだけでなく、剛体の位置を固定するなど、質量やその他の制約を順守する必要があります。私は何日も試しましたが、ジョイントタイプを構成することはできませんでした。以下を使用してベレ制約を試しました:

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での回転のみが必要であることがわかります。

ヘルプ?

4

1 に答える 1