Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

324
Visualizações
Sacudidas de cámara en movimiento en Unity

Estoy trabajando en una carrera cuesta abajo y quiero que la cámara se mueva en varios grados para transmitir que el jugador es cada vez más rápido. En este momento tengo un GameObject llamado "CameraHolder" que es el padre de la cámara principal.

Tengo un guión adjunto al Holder que sigue al jugador, y otro guión adjunto a la cámara que está destinado a sacudirla dentro de ese titular.

Guión de seguimiento de CameraHolder

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraFollow : MonoBehaviour { public Camera cam; public Transform player; public Vector3 offset; public float speed = 2f; public Rigidbody rb; public float startingFieldOfView = 60f; void FixedUpdate() { float interpolation = speed * Time.deltaTime; Vector3 cameraPosition = new Vector3(Mathf.Lerp(transform.position.x, player.position.x, interpolation), player.position.y + player.localScale.y + offset.y, player.position.z + -player.localScale.z + offset.z); // Change of camera FOV depending on the speed of the rigidbody transform.position = cameraPosition; cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, startingFieldOfView + (rb.velocity.magnitude / 3), .1f);

CameraShake Script adjunto a la cámara principal secundaria

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraShake : MonoBehaviour { public Rigidbody player; public float shakeThreshold; public float shakeMagnitude; private void Update() { float x = Random.Range(-shakeMagnitude, shakeMagnitude); float y = Random.Range(-shakeMagnitude, shakeMagnitude); if (player.velocity.magnitude >= shakeThreshold) { transform.localPosition = new Vector3(x, y, transform.position.z); } } }

Creo que tal vez entiendo mal cómo funciona localPosition. Pensé que movería la cámara una cantidad aleatoria mientras se movía dentro del soporte, pero no hace nada. ¿Estoy aplicando esto mal o la lógica no funciona?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Creo que usar cinemachine realmente te ayudará.

Para reemplazar su secuencia de comandos CameraFollow, puede usar una cámara virtual con la propiedad Seguir. Para obtener más información, puede ir allí: https://docs.unity3d.com/Packages/com.unity.cinemachine@2.6/manual/CinemachineSetUpVCam.html

Para reemplazar el movimiento de su cámara, puede verificar la propiedad de ruido allí: https://docs.unity3d.com/Packages/com.unity.cinemachine@2.6/manual/CinemachineVirtualCameraNoise.html

Para obtener más información sobre cinemachine, consulte el documento aquí: https://docs.unity3d.com/Packages/com.unity.cinemachine@2.6/manual/CinemachineUsing.html

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda