Swipe Power Limit in a ball
Hey guys, the method works the issue is that I can not have a control that I like launch, if I put enough power for a normal shot like me, to throw at full speed is insane. Up it goes well, but when pulling side can not calculate the shot. My question is how can I get a check you have the intuition to dunk, I do the calculation from the contact of the ball but depending on where you click Begin that has more or less power. Any ideas? The game is for Android. Thanks
 public float sensitivity; // sensibilidad de tio
 public float maxPotenciaX;//La maxima Potencia de tiro
 public float maxPotenciaY;//La maxima Potencia de tiro
 public Vector2 fuerza;
 private Vector3 touchPos;
 private Ray pulsacion;
 private RaycastHit colision;
     [HideInInspector]public bool DetectorBola;
 [HideInInspector]public bool tirada; //  si ha tirado
 static public Pelota rt;
 public float startTime;
 void Start () {
     tirada = false;
     rt = this;
 }
 void Update () {
     Tirada ();
 }
     
 void Tirada(){
     if (!tirada) {
         if (Input.GetMouseButtonDown (0)) {
             // Recoge 
             pulsacion = Camera.main.ScreenPointToRay (Input.mousePosition);
             if (Physics.Raycast (pulsacion, out colision) && colision.transform.tag == "Player") {
                 sensitivity = 0.1f;
                 startTime = Time.time;
                 touchPos = Input.mousePosition;
                 DetectorBola = true;
         }
                 
         }else if (Input.GetMouseButtonUp(0) && DetectorBola) {
             
             tirada = true; //stop detecting touches
             Vector3 releasePos = Input.mousePosition;
             fuerza.x = releasePos.x - touchPos.x;
             fuerza.y = releasePos.y - touchPos.y;
             fuerza.x /= (Time.time - startTime);
             fuerza.y /= (Time.time - startTime);
             if (fuerza.x > maxPotenciaX ) 
             {
                 sensitivity = 0.04f;
                 if (fuerza.x > maxPotenciaX+4000 )
                     sensitivity = 0.02f;
             }
             if (fuerza.y > maxPotenciaY ) 
             {
                 sensitivity = 0.05f;
                 if (fuerza.y > maxPotenciaY+2000 )
                     sensitivity = 0.04f;
             }
                         GetComponent<Rigidbody>().AddForce(fuerza*sensitivity, ForceMode.Impulse);
         }
     }
 
              the ball only go in X,Y is a 2,5D game, Gravity y=-25 and $$anonymous$$ass of RigidBody 12
Your answer
 
             Follow this Question
Related Questions
Move sphere around a cube using conventional physics 1 Answer
How to i go about playing a animation when Left mouse is clicked? C# 0 Answers
How can i look for collisions of the bulidngs in may array ? how can i use OnTRiggerEnter/exit ? 0 Answers
Changing direction of a hing joint 1 Answer
3rd Person Character Vertical Movement 0 Answers