Tengo un objeto de juego que avanza constantemente y lo controlo con el mouse en el eje X usando el siguiente script, y la cámara sigue este objeto.
El problema que tengo es cuando dejo que la cámara lo siga en el eje X, el movimiento del objeto se vuelve extraño (creo que debido al cambio de posición de WorldToScreenPoint), pero funciona perfectamente cuando se congela la posición X de la cámara.
Mi pregunta es ¿cómo puedo hacer que la cámara siga este objeto en el eje X sin afectar el movimiento?
if ((Input.GetMouseButtonDown(0) || Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)) { screenPoint = Camera.main.WorldToScreenPoint(transform.position); offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, screenPoint.y, screenPoint.z)); } if (((Input.GetMouseButton(0) && !Input.GetMouseButtonDown(0)) || ((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)) && !(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began))) { Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, screenPoint.y, screenPoint.z); Vector3 curPosition = new Vector3((Camera.main.ScreenToWorldPoint(curScreenPoint).x + offset.x), 0, 0); float newX = Mathf.Clamp(curPosition.x, -2, 2); transform.position = Vector3.Lerp(transform.position, new Vector3(newX, transform.position.y, transform.position.z), 25 * Time.deltaTime); }