public void computeMousePos() { Vector2 mousePos = MouseUtils.CursorWorldPosDepth(0); if ((Input.GetMouseButtonDown(0) || Input.GetMouseButtonUp(1)) && dragedPoint == null) { dragedPoint = GetNearestPoint(mousePos, pointsTr[0].localScale.x); // get nearest point for (int i = 0; i < meshes.Count; i++) { meshes[i].unFocus(); // unFocus all meshes } if (Input.GetMouseButtonUp(1)) { if (dragedPoint == null) { addPoint(new Vector2(mousePos.x, mousePos.y)); } else { RemovePoint(dragedPoint); } dragedPoint = null; return; } } if (dragedPoint != null) { dragedPoint.position = new Vector3(mousePos.x, mousePos.y, dragedPoint.position.z); } else { for (int i = 0; i < meshes.Count; i++) { if (meshes[i].triangle.ContainPoint(mousePos) && canFocus) { meshes[i].focus(); } else { meshes[i].unFocus(); } } } if (Input.GetMouseButtonUp(0) && dragedPoint != null) { RecreatePoints(); dragedPoint = null; } }