- Home /
How to properly handle multitouch for virtual joystick?
I have an on-screen joystick to control player movement which appears when the player touches the screen, as such:
 //Runs when first tapping on screen
     public void OnPointerDown(PointerEventData e)
     {
         //First move joystick to where input is happening
         Vector2 absolutePos;
 
         //If using touch, get the last touch event and use that to determine joystick position
         if(Input.touchSupported)
             RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.touches[Input.touches.Length-1].position, canvas.worldCamera, out absolutePos);
 
         //If not using touch (i.e. playing on PC) use the mouse position instead
         else
             RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.mousePosition, canvas.worldCamera, out absolutePos);
 
         //Set joystick position
         joystick.transform.position = canvas.transform.TransformPoint(absolutePos);
 
         //Show joystick on screen
         joystick.SetActive(true);
         usingJoystick = true;
     }
This generally works well - however, I am having some issues with multitouch. If the player already holds down on a different part on the screen (for instance the fire button to fire their weapons), using a second finger to show the joystick makes it appear on the position of the first touch rather than the latest one.
I'm assuming this line doesn't do what I assume it does:
 Input.touches[Input.touches.Length-1].position
How can I properly make sure that the joystick appears at the most recent touch and not any past one?
Your answer
 
 
             Follow this Question
Related Questions
Touch ID ????? 1 Answer
How to stop second finger from manipulating position of gui joystick 1 Answer
Android 2D multitouch joystick + buttons 0 Answers
Touch Crosshair problem. 1 Answer
Touch Joystick problem. 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                