[RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
Olá pessoal, tudo bem? Então, eu to quebrando a cabeça já tem uns dias com algo que aparentemente é simples, mas que não estou conseguindo de forma alguma resolver. Eu uso o script
para fazer com que o objeto B funcione de forma inversa ao objeto A.
Ele funciona perfeitamente. Porém, se eu mudá-los de lugar, mas precisamente se eu mudar o ângulo deles, o objeto B vai permanecer naquela mesma posição.
Alguém tem ideia do que fazer?
- Código:
public class InverterRotacao : MonoBehaviour
{
public Transform objetoRotacaoOriginal;
public Transform objetoRotacaoInvertida;
void LateUpdate()
{
objetoRotacaoInvertida.rotation = Quaternion.Inverse(objetoRotacaoOriginal.rotation);
}
}
para fazer com que o objeto B funcione de forma inversa ao objeto A.
Ele funciona perfeitamente. Porém, se eu mudá-los de lugar, mas precisamente se eu mudar o ângulo deles, o objeto B vai permanecer naquela mesma posição.
Alguém tem ideia do que fazer?
pdsimulador- Avançado
- PONTOS : 3103
REPUTAÇÃO : 27
Áreas de atuação : Modelagem 3D
Respeito as regras :
Re: [RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
Up!!
Ainda não consegui resolver este problema.
Eu mudei o código para isso aqui:
E agora ele faz exatamente o que eu quero. Que é quando eu mudar de posição, ele acompanhar. Só que aí surge outro problema (tinha que aparecer, né):
Eu queria poder mudar o eixo Y do objetoRotacaoInvertida para 180. A única coisa que eu quero que ele pegue do objetoRotacaoOriginal é o valor do eixo X, mas não sei como fazer. Alguém pode ajudar?
Ainda não consegui resolver este problema.
Eu mudei o código para isso aqui:
- Código:
void LateUpdate()
{
objetoRotacaoInvertida.localEulerAngles = -objetoRotacaoOriginal.localEulerAngles;
}
E agora ele faz exatamente o que eu quero. Que é quando eu mudar de posição, ele acompanhar. Só que aí surge outro problema (tinha que aparecer, né):
Eu queria poder mudar o eixo Y do objetoRotacaoInvertida para 180. A única coisa que eu quero que ele pegue do objetoRotacaoOriginal é o valor do eixo X, mas não sei como fazer. Alguém pode ajudar?
pdsimulador- Avançado
- PONTOS : 3103
REPUTAÇÃO : 27
Áreas de atuação : Modelagem 3D
Respeito as regras :
Re: [RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
- Código:
Vector3 tempRot = objetoRotacaoInvertida.localEulerAngles;
tempRot.x = -objetoRotacaoOriginal.localEulerAngles.x;
objetoRotacaoInvertida.localEulerAngles = tempRot;
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
Boa tarde, Fagner!! Cara, funcionou. Só que ele criou uma espécie de parede invisível e não consegue fazer um giro completo. Quando ele chega em torno de 90 graus, ele "bate" e volta.Fagner escreveu:
- Código:
Vector3 tempRot = objetoRotacaoInvertida.localEulerAngles;
tempRot.x = -objetoRotacaoOriginal.localEulerAngles.x;
objetoRotacaoInvertida.localEulerAngles = tempRot;
Aqui o vídeo pra mostrar o problema:
pdsimulador- Avançado
- PONTOS : 3103
REPUTAÇÃO : 27
Áreas de atuação : Modelagem 3D
Respeito as regras :
Re: [RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
Uma outra alternativa, só que já entrando no campo da gambiarra, seria deixar um objeto copiando a rotação e posição exata do outro lado, isso durante o cálculo de física, depois, na LateUpdate(), você giraria um dos lados no eixo Y, 180 graus, dessa forma os objetos ficariam com a rotação espelhada.
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
Fagner escreveu:Uma outra alternativa, só que já entrando no campo da gambiarra, seria deixar um objeto copiando a rotação e posição exata do outro lado, isso durante o cálculo de física, depois, na LateUpdate(), você giraria um dos lados no eixo Y, 180 graus, dessa forma os objetos ficariam com a rotação espelhada.
Certo. Vou vendo aqui o que posso fazer. Mais uma vez agradeço pela atenção e ajuda o/
pdsimulador- Avançado
- PONTOS : 3103
REPUTAÇÃO : 27
Áreas de atuação : Modelagem 3D
Respeito as regras :
Fagner- Moderador
- PONTOS : 4443
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
Perfeito, Fagner!!! Era exatamente isso. Puts depois de semanas parado poderei voltar a andar com o projeto. Mil vezes obrigado!! :DFagner escreveu:Gambiarra
Bom, funciona.
pdsimulador- Avançado
- PONTOS : 3103
REPUTAÇÃO : 27
Áreas de atuação : Modelagem 3D
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] uma duvida de Inverse Kinematics
» [RESOLVIDO] Duvida sobre versao da unity e sobre o lerp
» [RESOLVIDO] Dúvida sobre multiplayer
» [Resolvido]Duvida sobre meu HUD
» [RESOLVIDO] Duvida Sobre C#
» [RESOLVIDO] Duvida sobre versao da unity e sobre o lerp
» [RESOLVIDO] Dúvida sobre multiplayer
» [Resolvido]Duvida sobre meu HUD
» [RESOLVIDO] Duvida Sobre C#
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos