Question by 
               unity_1K2C_aJeJCN4YA · Mar 01, 2021 at 12:20 PM · 
                rope  
              
 
              Need help with my rope mechanic
Hello, i am a noob in unity. I am trying to make a rope game that has two types of "ropes" - one normal and the second one which holds you at one angle and you can lengthen and shorten it (like Static hook from Terraria). I copied my code from first rope and added ability to change its length but i dont know how to do that rope holds you and dont let you swing. Here's my code:
 public LineRenderer line2;
 public DistanceJoint2D joint2;
 Vector3 targetPos;
 RaycastHit2D hit;
 public float distance = 10f;
 public LayerMask mask;
 void Start()
 {
     joint2 = GetComponent<DistanceJoint2D>();
     joint2.enabled = false;
     line2.enabled = false;
 }
 void FixedUpdate()
     {
         if (Input.GetKey(KeyCode.W))
         {
             joint2.distance -= 0.1f;
         }
         if (Input.GetKey(KeyCode.S) && (joint2.distance < 8f))
         {
             joint2.distance += 0.1f;
         }
 }
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.Q))
     {
         targetPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
         targetPos.z = 0;
         hit = Physics2D.Raycast(transform.position, targetPos - transform.position, distance, mask);
         if (hit.collider != null && hit.collider.gameObject.GetComponent<Rigidbody2D>() != null)
         {
             joint2.enabled = true;
             Vector2 connectPoint = hit.point - new Vector2(hit.collider.transform.position.x, hit.collider.transform.position.y);
             connectPoint.x = connectPoint.x / hit.collider.transform.localScale.x;
             connectPoint.y = connectPoint.y / hit.collider.transform.localScale.y;
             Debug.Log(connectPoint);
             joint2.connectedAnchor = connectPoint;
             joint2.connectedBody = hit.collider.gameObject.GetComponent<Rigidbody2D>();
             joint2.distance = Vector2.Distance(transform.position, hit.point);
             line2.enabled = true;
             line2.SetPosition(0, transform.position);
             line2.SetPosition(1, hit.point);
             line2.GetComponent<roperatio>().grabPos = hit.point;
             line2.SetPosition(1, joint2.connectedBody.transform.TransformPoint(joint2.connectedAnchor));
             
         }
     }
     if (Input.GetKey(KeyCode.Q))
     {
         line2.SetPosition(0, transform.position);
     }
     if (Input.GetKeyUp(KeyCode.Q))
     {
         joint2.enabled = false;
         line2.enabled = false;
     }
 }
 
               Please help i am stuck with it for like 5-6 hours also sorry for my english i dont know it well
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Rope Physics - Flying End 0 Answers
How to shoot spider man webs? 1 Answer
Unbreakable joint 2d 0 Answers
How to grip a character with a rope ? 0 Answers
Making Rope mesh to edit vertices. how? 0 Answers