void UpdateDistConstraint() { if (Node1.FixedPosition && Node2.FixedPosition) { CalcAutoLength(); return; } Vector3 delta = Node2.Position - Node1.Position; float dist = delta.magnitude; delta.Normalize(); delta *= (dist - Length); if (Node1.FixedPosition == false && Node2.FixedPosition == false) { delta *= 0.5f; } if (Node1.FixedPosition == false) { Node1.MoveNode(delta); } if (Node2.FixedPosition == false) { Node2.MoveNode(-delta); } }