[TUTORIAL] Player executar LookAt apenas no eixo Y
4 participantes
Página 1 de 1
[TUTORIAL] Player executar LookAt apenas no eixo Y
Saudações meus amados Players!
Recentemente tenho visto alguns desenvolvedores de games em 3ª pessoa enfrentar um probleminha quando querem que o personagem vire-se de frente para alguma coisa (as vezes, algum objeto no chão). O que acontece é que usando o simples transform.LookAt (ObjetoDestino) o personagem gira em todos os eixos necessários para estar totalmente de frente para o objeto. Vou deixar aqui um exemplo de como fazer um "LookAt" apenas no eixo Y.
este exemplo é para o caso em que o script está no objeto, agora se for o caso do script ser no player, basta deixá-lo assim:
Espero que ajude quem precise!
Recentemente tenho visto alguns desenvolvedores de games em 3ª pessoa enfrentar um probleminha quando querem que o personagem vire-se de frente para alguma coisa (as vezes, algum objeto no chão). O que acontece é que usando o simples transform.LookAt (ObjetoDestino) o personagem gira em todos os eixos necessários para estar totalmente de frente para o objeto. Vou deixar aqui um exemplo de como fazer um "LookAt" apenas no eixo Y.
- Código:
public Transform player;
void Update () {
Vector3 estaPosicao = transform.position - player.position; //Comando para obter a posição do objeto em relação ao Player
player.rotation = Quaternion.Slerp (player.rotation, Quaternion.LookRotation (estaPosicao), 3f * Time.deltaTime); //Comando para executar o giro na direção do objeto
player.eulerAngles = new Vector3 (0, player.eulerAngles.y, 0); //Comando para travar os eixos X e Z, mantendo apenas o Y
}
este exemplo é para o caso em que o script está no objeto, agora se for o caso do script ser no player, basta deixá-lo assim:
- Código:
public Transform objeto;
void Update () {
Vector3 PosicaoDoObjeto = objeto.position - transform.position; //Comando para obter a posição do objeto em relação ao Player
transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation (PosicaoDoObjeto), 3f * Time.deltaTime); //Comando para executar o giro na direção do objeto
transform.eulerAngles = new Vector3 (0, transform.eulerAngles.y, 0); //Comando para travar os eixos X e Z, mantendo apenas o Y
}
Espero que ajude quem precise!
JohnRambo- Moderador
- PONTOS : 5153
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [TUTORIAL] Player executar LookAt apenas no eixo Y
Excelente brow! vai ajudar muita gente!John Rambo escreveu:Saudações meus amados Players!
Recentemente tenho visto alguns desenvolvedores de games em 3ª pessoa enfrentar um probleminha quando querem que o personagem vire-se de frente para alguma coisa (as vezes, algum objeto no chão). O que acontece é que usando o simples transform.LookAt (ObjetoDestino) o personagem gira em todos os eixos necessários para estar totalmente de frente para o objeto. Vou deixar aqui um exemplo de como fazer um "LookAt" apenas no eixo Y.
- Código:
public Transform player;
void Update () {
Vector3 estaPosicao = transform.position - player.position; //Comando para obter a posição do objeto em relação ao Player
player.rotation = Quaternion.Slerp (player.rotation, Quaternion.LookRotation (estaPosicao), 3f * Time.deltaTime); //Comando para executar o giro na direção do objeto
player.eulerAngles = new Vector3 (0, player.eulerAngles.y, 0); //Comando para travar os eixos X e Z, mantendo apenas o Y
}
este exemplo é para o caso em que o script está no objeto, agora se for o caso do script ser no player, basta deixá-lo assim:
- Código:
public Transform objeto;
void Update () {
Vector3 PosicaoDoObjeto = objeto.position - transform.position; //Comando para obter a posição do objeto em relação ao Player
transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation (PosicaoDoObjeto), 3f * Time.deltaTime); //Comando para executar o giro na direção do objeto
transform.eulerAngles = new Vector3 (0, transform.eulerAngles.y, 0); //Comando para travar os eixos X e Z, mantendo apenas o Y
}
Espero que ajude quem precise!
Abraço!
Re: [TUTORIAL] Player executar LookAt apenas no eixo Y
Obrigado, espero que funcione no meu projetoJohn Rambo escreveu:Saudações meus amados Players!
Recentemente tenho visto alguns desenvolvedores de games em 3ª pessoa enfrentar um probleminha quando querem que o personagem vire-se de frente para alguma coisa (as vezes, algum objeto no chão). O que acontece é que usando o simples transform.LookAt (ObjetoDestino) o personagem gira em todos os eixos necessários para estar totalmente de frente para o objeto. Vou deixar aqui um exemplo de como fazer um "LookAt" apenas no eixo Y.
- Código:
public Transform player;
void Update () {
Vector3 estaPosicao = transform.position - player.position; //Comando para obter a posição do objeto em relação ao Player
player.rotation = Quaternion.Slerp (player.rotation, Quaternion.LookRotation (estaPosicao), 3f * Time.deltaTime); //Comando para executar o giro na direção do objeto
player.eulerAngles = new Vector3 (0, player.eulerAngles.y, 0); //Comando para travar os eixos X e Z, mantendo apenas o Y
}
este exemplo é para o caso em que o script está no objeto, agora se for o caso do script ser no player, basta deixá-lo assim:
- Código:
public Transform objeto;
void Update () {
Vector3 PosicaoDoObjeto = objeto.position - transform.position; //Comando para obter a posição do objeto em relação ao Player
transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation (PosicaoDoObjeto), 3f * Time.deltaTime); //Comando para executar o giro na direção do objeto
transform.eulerAngles = new Vector3 (0, transform.eulerAngles.y, 0); //Comando para travar os eixos X e Z, mantendo apenas o Y
}
Espero que ajude quem precise!
Água Sem Hidrogênio- Avançado
- PONTOS : 2729
REPUTAÇÃO : 25
Respeito as regras :
Re: [TUTORIAL] Player executar LookAt apenas no eixo Y
dstaroski escreveu:Excelente brow! vai ajudar muita gente!
Abraço!
:D
Água Sem Hidrogênio escreveu:Obrigado, espero que funcione no meu projeto
Espero que ajude :D
JohnRambo- Moderador
- PONTOS : 5153
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como usar LookAt em apenas um eixo?
» Como faço pra executar a ação apenas 1 vez ?
» Calcular a distância apenas do eixo X
» Rotacionar objeto em apenas um eixo
» Como resolver o problema de eixo da arma ao executar uma animação?
» Como faço pra executar a ação apenas 1 vez ?
» Calcular a distância apenas do eixo X
» Rotacionar objeto em apenas um eixo
» Como resolver o problema de eixo da arma ao executar uma animação?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos