Pessoal, estava enfrentando problemas com o Quaternion. Meu método estava nessas duas formas:
public void parar(GameObject objPersonagem, Vector3 anguloFinal) {
Quaternion rotacaoFinal = Quaternion.Euler(anguloFinal);
objPersonagem.transform.rotation = Quaternion.Lerp(objPersonagem.transform.rotation, rotacaoFinal, velocidadeGiro * Time.deltaTime);
if(objPersonagem.transform.rotation == rotacaoFinal) {
// Código
}
}
public void parar(GameObject objPersonagem, Vector3 anguloFinal) {
if(anguloFinal == anguloPraEsquerda) {
Quaternion rotacaoFinal = Quaternion.LookRotation(objPontoBordaEsquerda.transform.position, Vector3.up);
objPersonagem.transform.rotation = Quaternion.Lerp(objPersonagem.transform.rotation, rotacaoFinal, velocidadeGiro * Time.deltaTime);
if(objPersonagem.transform.rotation == rotacaoFinal) {
// Códgo
}
}
}
Mas na hora de fazer “objPersonagem.transform.rotation” igual a “rotacaoFinal”, eu não tinha resultados iguais, por isso não estava conseguindo finalizar o método.
Então troquei o “Lerp” por “RotateTowards” e resolveu. Fica aí o tópico pra ajudar quem estiver com o mesmo problema!