Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

245
Vistas
Sacudir la cámara al mirar en cierto ángulo en unity 3d

Tengo un problema extraño con el controlador de mi cámara y no puedo entender por qué. Cuando miro en ciertas direcciones, la cámara comienza a temblar. La rotación de la cámara parece cambiar muy rápido en este momento, pero no entiendo por qué.

Aquí está el código que uso (esto se llama en la actualización).

 void PhotoMode() { Vector3 newPos = transform.position; //déplacement avant if(Input.GetKey(InputManager.IM.forward)) { newPos += cam.transform.forward * moveSpeedPhoto * Time.unscaledDeltaTime; } //déplacement arrière if(Input.GetKey(InputManager.IM.backward)) { newPos -= cam.transform.forward * moveSpeedPhoto * Time.unscaledDeltaTime; } //déplacement gauche if(Input.GetKey(InputManager.IM.left)) { newPos += -transform.right * moveSpeedPhoto * Time.unscaledDeltaTime; } //déplacement droite if(Input.GetKey(InputManager.IM.right)) { newPos += transform.right * moveSpeedPhoto * Time.unscaledDeltaTime; } float x = Input.GetAxis("Mouse X"); float y = Input.GetAxis("Mouse Y"); x *= photoRotSpeed * Time.unscaledDeltaTime; y *= photoRotSpeed * Time.unscaledDeltaTime; currentX = Mathf.Lerp(currentX, x, smoothTime * Time.unscaledDeltaTime); currentY = Mathf.Lerp(currentY, y, smoothTime * Time.unscaledDeltaTime); float rotationX = transform.localEulerAngles.y + currentX * photoRotSpeed; rotationY += currentY * photoRotSpeed; rotationY = Mathf.Clamp(rotationY, -90+65, 90+65); transform.localRotation = Quaternion.Euler(new Vector3(-rotationY, rotationX, 0)); transform.position = newPos; }

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Logré hacerlo funcionar con esto: (la cámara dentro de un objeto del juego, que tiene el guión)

 void PhotoMode() { if(Input.GetKeyDown(KeyCode.Space)) { dontMove = !dontMove; screenshotManager.photoModeCanvas.SetActive(dontMove); if(!dontMove && screenshotManager.focusDistanceIndicatorToggle.isOn && screenshotManager.distanceIndicator.activeSelf) { screenshotManager.FocusDistanceIndicator(false); } if(dontMove && screenshotManager.focusDistanceIndicatorToggle.isOn && !screenshotManager.distanceIndicator.activeSelf) { screenshotManager.FocusDistanceIndicator(true); } } if(dontMove) { Cursor.lockState = CursorLockMode.None; return; } Cursor.lockState = CursorLockMode.Locked; Vector3 newPos = transform.position; float scroll = Input.GetAxis("Mouse ScrollWheel"); moveSpeedPhoto += scroll*10; moveSpeedPhoto = Mathf.Clamp(moveSpeedPhoto, 0, 100); //déplacement avant if(Input.GetKey(InputManager.IM.forward)) { newPos += cam.transform.forward * moveSpeedPhoto * Time.unscaledDeltaTime; } //déplacement arrière if(Input.GetKey(InputManager.IM.backward)) { newPos -= cam.transform.forward * moveSpeedPhoto * Time.unscaledDeltaTime; } //déplacement gauche if(Input.GetKey(InputManager.IM.left)) { newPos += -transform.right * moveSpeedPhoto * Time.unscaledDeltaTime; } //déplacement droite if(Input.GetKey(InputManager.IM.right)) { newPos += transform.right * moveSpeedPhoto * Time.unscaledDeltaTime; } float x = Input.GetAxis("Mouse X") * photoRotSpeed * Time.unscaledDeltaTime; float y = Input.GetAxis("Mouse Y") * photoRotSpeed * Time.unscaledDeltaTime; rotationX -= y; rotationX = Mathf.Clamp(rotationX, -90, 90); cam.transform.localRotation = Quaternion.Euler(rotationX, 0f, 0f); this.transform.Rotate(Vector3.up * x); transform.position = newPos; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda