Esempio n. 1
0
    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);
        }
    }