private void UpdateFingersBasedOnTouch() { if (fingers == null) { fingers = new GameObject[] { finger1, finger2, finger3, finger4, finger5 }; } lock (curAvaiPointers.AccessLock) { if (curAvaiPointers.CriticData == null) { return; } TouchPointerData[] avaiPointers = (TouchPointerData[])curAvaiPointers.CriticData; for (int i = 0; i < fingers.Length; i++) { GameObject finger = fingers[i]; if (finger == null) { continue; } if (i < avaiPointers.Length) { finger.SetActive(true); Vector2 relPosInPad = GlobalUtilities.ConvertMobileRelPosToUnityRelPos(new Vector2(avaiPointers[i].RelX, avaiPointers[i].RelY)); finger.transform.localPosition = new Vector3(relPosInPad.x, relPosInPad.y, finger.transform.localPosition.z); } else { finger.SetActive(false); } } } }