[RESOLVIDO] Copiar a rotação de um Objeto para outro.
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Copiar a rotação de um Objeto para outro.
Pessoal tudo bom?
Estou tendo uma dúvida que não consegui encontrar em outro tópico no fórum que fosse similar e me ajudasse.
Tinho dois objetos, por exemplo:
Objeto A e Objeto B
O Objeto A é o meu Player -- e o Objeto B é um Alvo que está atrelado ao Follow no Cinemachine.
Eu quero que o Objeto B copie a posição e a rotação do do Objeto A para a câmera seguir o Player.
Com a posição funciona perfeitamente, mas com a rotação estou tendo problemas. pois a rotação no Objeto B não estão funcionando bem. Os valores ficam se alterando sozinhos, os números subindo e descendo, principalmente no Eixo Y.
O que eu posso fazer para passar o Rotation de maneira correta?
Estou tendo uma dúvida que não consegui encontrar em outro tópico no fórum que fosse similar e me ajudasse.
Tinho dois objetos, por exemplo:
Objeto A e Objeto B
O Objeto A é o meu Player -- e o Objeto B é um Alvo que está atrelado ao Follow no Cinemachine.
Eu quero que o Objeto B copie a posição e a rotação do do Objeto A para a câmera seguir o Player.
Com a posição funciona perfeitamente, mas com a rotação estou tendo problemas. pois a rotação no Objeto B não estão funcionando bem. Os valores ficam se alterando sozinhos, os números subindo e descendo, principalmente no Eixo Y.
O que eu posso fazer para passar o Rotation de maneira correta?
- Código:
void Update()
{
if (AlvoP1 == null)
{
AlvoP1 = GameObject.FindWithTag("AlvoP1");
} else
{
AlvoP1.transform.position = transform.TransformPoint(vetor);
Vector3 newRotation = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z);
AlvoP1.transform.eulerAngles = newRotation;
}
}
RenatoBarreto- Iniciante
- PONTOS : 1391
REPUTAÇÃO : 5
Idade : 33
Respeito as regras :
Re: [RESOLVIDO] Copiar a rotação de um Objeto para outro.
não utilize Euler angles, passe a rotação direto, é um quaternion.
AlvoP1. transform. rotation = transform.rotation
AlvoP1. transform. rotation = transform.rotation
Fagner- Moderador
- PONTOS : 4444
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Copiar a rotação de um Objeto para outro.
Fagner, já fiz desta maneira e ficou dando o mesmo problema. O objeto fica tremendo. Tem algo a ver com Time.deltaTime?
RenatoBarreto- Iniciante
- PONTOS : 1391
REPUTAÇÃO : 5
Idade : 33
Respeito as regras :
Re: [RESOLVIDO] Copiar a rotação de um Objeto para outro.
Provável que tenha outra coisa errada, pois com o código acima usando o rotation deveria funcionar...
Fagner- Moderador
- PONTOS : 4444
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [RESOLVIDO] Copiar a rotação de um Objeto para outro.
Fagner, mas uma vez venho te agradecer por ser sempre tão solicito e prestativo.
Eu Acabei conseguindo resolver o meu problema de outra maneira.
Tentando repetir as informações do Transform em outro objeto e inserir este outro objeto no Cinemachine não estava funcionando.
Eu consegui resolver da seguinte maneira.
Exclui este segundo objeto, adicionei o Script direto na VirtualCamera, este script Busca o Player e ai sim insere o Transform no Follow e funcionou muito bem.
Vou deixar aqui o Script para ajudar outros que possam ter o mesmo problema:
Eu Acabei conseguindo resolver o meu problema de outra maneira.
Tentando repetir as informações do Transform em outro objeto e inserir este outro objeto no Cinemachine não estava funcionando.
Eu consegui resolver da seguinte maneira.
Exclui este segundo objeto, adicionei o Script direto na VirtualCamera, este script Busca o Player e ai sim insere o Transform no Follow e funcionou muito bem.
Vou deixar aqui o Script para ajudar outros que possam ter o mesmo problema:
- Código:
using Cinemachine;
public class FindTargetP1 : MonoBehaviour
{
public GameObject Target;
private CinemachineVirtualCamera vcam;
public Transform tFollowTarget;
private void Start()
{
vcam = GetComponent<CinemachineVirtualCamera>();
}
private void Update()
{
if (Target == null)
{
Target = GameObject.FindWithTag("Target");
}
else
{
tFollowTarget = Target.transform;
vcam.LookAt = tFollowTarget;
vcam.Follow = tFollowTarget;
}
}
}
RenatoBarreto- Iniciante
- PONTOS : 1391
REPUTAÇÃO : 5
Idade : 33
Respeito as regras :
Re: [RESOLVIDO] Copiar a rotação de um Objeto para outro.
Que bom que deu certo, certeza que vai ajudar outros com a mesma dúvida.
Dê uma olhada em sua caixa de entrada, deixei uma mensagem lá.
Dê uma olhada em sua caixa de entrada, deixei uma mensagem lá.
Fagner- Moderador
- PONTOS : 4444
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Copiar valor de script de outro objeto de outra cena
» [RESOLVIDO] Como fazer um objeto ter a mesma rotação de outro
» [RESOLVIDO] Rotação apontando para um Objeto.
» Copiar a Rotação do objeto em apenas um eixo.
» [RESOLVIDO] Como voltar um objeto para sua rotação inicial?
» [RESOLVIDO] Como fazer um objeto ter a mesma rotação de outro
» [RESOLVIDO] Rotação apontando para um Objeto.
» Copiar a Rotação do objeto em apenas um eixo.
» [RESOLVIDO] Como voltar um objeto para sua rotação inicial?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos