unity2d adjustable power meter
i am making a game where i require a power meter. i am using drag and shoot method, and have LineRenderer as my trajectory. basically when the player click and drag on the screen the ball moves in the direction it’s s dragged (just like bow and arrow). i want to display a power meter so that players can adjust the power before they shoot. i have few approaches but they don’t give what i want, in some cases i get negative values and in some cases i get x and a y value. how can i achieve this functionality? can you please have look and suggest what am doing wrong. thank you
``` private void Update() { if (onGround && ballMoveable) {
         if (Input.GetMouseButtonDown(0))
         {
             startPoint = cam.ScreenToWorldPoint(Input.mousePosition);
             startPoint.z = 2;
                 
         }
         if (Input.GetMouseButton(0))
         {
              currentPoint = cam.ScreenToWorldPoint(Input.mousePosition);
              currentPoint.z = 2;
              tl.RenderLine(startPoint, currentPoint);
             
             force = new Vector2(Mathf.Clamp(startPoint.x - currentPoint.x, minPower.x, maxPower.x), Mathf.Clamp(startPoint.y - currentPoint.y, minPower.y, maxPower.y));
             //powerDisplay = Vector2.ClampMagnitude(startPoint - currentPoint, power);
             float powerDisplayX = Mathf.Clamp(startPoint.x - currentPoint.x, 0, power);
             float powerDisplayY = Mathf.Clamp(startPoint.y - currentPoint.y, 0, power);
             powerDisplay = powerDisplayX + powerDisplayY;
             Debug.Log(powerDisplay);
             //powerDisplay = force.x + force.y * power;
             //if (powerDisplay < 0)
             //{
             //    powerDisplay = -powerDisplay;
             //}
         }
         if (Input.GetMouseButtonUp(0))
         {
             endPoint = cam.ScreenToWorldPoint(Input.mousePosition);
             endPoint.z = 2;
             //force = new Vector2(Mathf.Clamp(startPoint.x - endPoint.x, minPower.x, maxPower.x), Mathf.Clamp(startPoint.y - endPoint.y, minPower.y, maxPower.y));
             rb.AddForce(force * power, ForceMode2D.Impulse);
             tl.EndLine();
             Debug.Log(force * power);
         }
     }
     if (facingRight == false && startPoint.x > currentPoint.x)
     {
         Flip();
     }
     else if (facingRight && startPoint.x < currentPoint.x)
     {
         Flip();
     }
     
 }```
 
              
               Comment
              
 
               
              Your answer