- Home /
Multitouch sometimes doesn't work properly when fingers are close together.
Hi.
I need to move 2 objects simultaneosuly with Touch, my code it's working fine so far but when I move them with my fingers close together, one of the objects will stop moving on some devices, it's seems like Unity confuses the fingersIDs but I'm not completely sure about that. Here's the code I'm using.
void Update () {
if (Input.touchCount > 0) {
for(int i = 0; i < Input.touchCount; i++) {
Touch touch = Input.GetTouch(i);
fingerID = touch.fingerId;
Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
RaycastHit hit = new RaycastHit();
if (touch.phase == TouchPhase.Began) {
if (fingerID == 0){
if (Physics.Raycast(ray, out hit, maxPickingDistance)) {
pickedOb = hit.transform;
}
else pickedOb = null;
}
if (fingerID == 1) {
if (Physics.Raycast(ray, out hit, maxPickingDistance)) {
pickedOb2 = hit.transform;
}
else pickedOb2 = null;
}
}
else if (touch.phase == TouchPhase.Moved) {
if (fingerID == 0) {
if (pickedOb != null && pickedOb.tag == "Player") {
pickedOb.transform.position = ray.GetPoint(1f);
}
}
if (fingerID == 1) {
if (pickedOb2 != null && pickedOb2.tag == "Player") {
pickedOb2.transform.position = ray.GetPoint(1f);
}
}
}
else if (touch.phase == TouchPhase.Ended) {
if (fingerID == 0) {
pickedOb = null;
}
if (fingerID == 1) {
pickedOb2 = null;
}
}
}
}
}
Is there anything I could do to prevent this or a better way to write this code? I'm using Unity 4.6
Thank you very much for your help.
Answer by hbalint1 · May 08, 2015 at 06:53 PM
I'm sorry but i think you can't solve that. It is not Unity's fault, every phone has the same behavoiur. If you download a multitouch test, you can see yourelf, that if you move your two fingers close together, the Android system sees it like one finger.
Your answer
Follow this Question
Related Questions
Multitouch Android touches excluding each other 1 Answer
¿Unity messing up fingerIDs? [Android] 1 Answer
Drawing 2 lines in same time 0 Answers
FingerID problem 1 Answer
Multitouching on an Android device 1 Answer