private void HandleMouseInput() { Vector2 posRelative = new Vector2((float)Input.mousePosition.x / Screen.width, (float)Input.mousePosition.y / Screen.height); Vector3 position = mainCamera.ScreenToWorldPoint(Input.mousePosition); // On mouse primary button click if (Input.GetMouseButtonDown(0)) { FingerInput finger = new FingerInput(0, position, posRelative, new Vector2(0, 0), 0f); surfaceFingers.Add(0, finger); OnFingerAdd(new List <FingerInput>(surfaceFingers.Values)); } // On release else if (Input.GetMouseButtonUp(0)) { OnFingerRemove(new List <FingerInput>(surfaceFingers.Values)); surfaceFingers.Remove(0); } // If holding mouse button down, update position else if (surfaceFingers.Count > 0) { List <FingerInput> updated = new List <FingerInput>(); FingerInput finger = surfaceFingers[0]; finger.UpdateProps(position, posRelative, new Vector2(0, 0), 0f); updated.Add(finger); OnFingerUpdate(updated); } }