No mundos dos jogos existem diversos tipos de câmera e na criação de jogos na Unity não é diferente.
Todos esses modos podem ser reproduzidos facilmente na Unity e você pode personalizar do jeito que quiser.
Aqui nesse artigo eu irei te passar alguns deles para você conseguir seguir o personagem com a câmera.
Modo 1 – Câmera filha do jogador
O primeiro modo é o mais simples, você pode colocar a câmera dentro do personagem, assim quando ele se mover, a câmera move junto.
Não esqueça de ajustar a posição da câmera para perto do jogador
Modo 2 – Câmera em 3ª pessoa simples
O 2º modo é um aprimoramento do primeiro.
Ainda com a câmera dentro do personagem você irá criar um script para a câmera se afastar e aproximar do personagem.
public GameObject Personagem; public float Max; public float Min; public float Altura; void Update(){ Vector3 Ponto = new Vector3(Personagem.transform.position.x, Altura, Personagem.transform.position.z); transform.LookAt(Ponto); } void Afastar(){ if(transform.localPosition.z < Max){ transform.Translate(0, 0, 1 * Time.deltaTime); } } void Aproximar(){ if (transform.localPosition.z > Min){ transform.Translate(0, 0, -1 * Time.deltaTime); } }
Coloque esse script dentro da câmera.
Essas funções podem ser ativadas por botões, analógicos ou mouse.
Modo 3 – Câmera em 3ª pessoa completo
Ainda dessa forma temos o jeito mais completo de fazer, que é a câmera em 3ª pessoa padrão, usada nas franquias GTA.
Para isso você irá criar um empty dentro do personagem e colocar a câmera dentro desse objeto.
public GameObject Eixo; public float Max; public float Min; void Afastar(){ if(transform.localPosition.z < Max){ transform.Translate(0, 0, 1 * Time.deltaTime); } } void Aproximar(){ if (transform.localPosition.z > Min){ transform.Translate(0, 0, -1 * Time.deltaTime); } } void GirarEixoParaDireita(){ Eixo.transform.Rotate(0, 360 * Time.deltaTime, 0); } void GirarEixoParaEsquerda(){ Eixo.transform.Rotate(0, 360 * Time.deltaTime, 0); } void GirarCameraParaCima(){ transform.Rotate( 360 * Time.deltaTime, 0, 0); } void GirarCameraParaBaixo(){ transform.Rotate(360 * Time.deltaTime, 0, 0); }
Coloque o script dentro da câmera.
Essas funções podem ser ativadas por botões, analógicos ou mouse.
Modo 4 – Câmera seguindo largura e profundidade
Na Unity, a largura e profundidade são os eixos x e z, nós iremos fazer a câmera se mover somente nesses eixos.
Você também pode adaptar para a câmera seguir somente em um dos eixos.
Nesse caso nós iremos deixar a câmera e personagens separados e colocaremos um script na câmera:
public GameObject Personagem; public float altura; void Update(){ float x = Personagem.transform.position.x; float z = Personagem.transform.position.z - 10.0f; transform.position = new Vector3(x, altura, z); } Para esse modo existe também um script que deixa a movimentação da câmera mais suave: public GameObject Personagem; public float altura; void Update() { float x = Personagem.transform.position.x - transform.position.x; float z = Personagem.transform.position.z - 10.0f - transform.position.z; transform.Translate(x * Time.deltaTime, 0, z * Time.deltaTime); }
Gostou desse artigo? Temos mais em nosso blog: www.crieseusjogos.com.br
Também temos vídeos toda semana em nosso canal do Youtube: Crie seus jogos – Youtube
Baixe gratuitamente: os passos para desenvolver jogos de sucesso
Seja o primeiro a comentar.