Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Bug de rotação no objeto

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

Bug de rotação no objeto

Mensagem por Adilson » Qua Dez 07, 2016 6:07 pm

uso o seguinte codigo com a finalidade de conseguir fazer o objeto olhar para onde esta andando:

Código: Selecionar todos

using UnityEngine;
using System.Collections;

public class spider_contrrol : MonoBehaviour 
{
 private int act = 0;
 private int nomove = 0;
 public float smooth = 2.0F;
 Rigidbody m_Rigidbody;
 Animator m_Animator;
 SphereCollider m_Collider;
 void Start ()  {
 m_Animator = GetComponent<Animator> ();
 m_Rigidbody = GetComponent<Rigidbody> ();
 m_Collider = GetComponent<SphereCollider> ();
 }
 
 // Update is called once per frame
 void Update () {
 if (nomove <= 0) {
 float horizontal = Input.GetAxis ("Horizontal") * 2;
 float vertical = Input.GetAxis ("Vertical") * 2;
 if (Mathf.Abs (horizontal) + Mathf.Abs (vertical) > 0) {
 act = 1; {
 Vector3 p = transform.position;
 Vector3 t = new Vector3 (transform.position.x + (horizontal*3), transform.position.y, transform.position.z + (vertical*3));

 Vector3 d = t - p;
 d.y = 0;
 Quaternion newRotation = Quaternion.FromToRotation(Vector3.forward, d);
 }
 } else
 act = 0;
 if (Input.GetKeyDown ("x")) {
 act = 5;
 horizontal = 0;
 vertical = 0;
 }
 m_Rigidbody.velocity = new Vector3 (horizontal, 0, vertical);
 } else
 nomove -= 1;
 m_Animator.SetInteger("act", act);
 }
}
Porem quando aperto para baixo no teclado, o objeto vira de ponta cabeça '-'
Não sou iniciante, sou profissional em game maker e agora to aprendendo Unity
Vlw, Flw !!

Avatar do usuário
WellingtonBecker
Membro
Membro
Reações: 0
Mensagens: 57

Re: Bug de rotação no objeto

Mensagem por WellingtonBecker » Qua Dez 07, 2016 6:26 pm

Código: Selecionar todos

Vector3 t = new Vector3 (transform.position.x + (horizontal*3), transform.position.y + (vertical*3), transform.position.z );

Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

Re: Bug de rotação no objeto

Mensagem por Adilson » Qua Dez 07, 2016 6:33 pm

No work :(
Ele olha certinho pra esquerda e pra direita, mas quando vai pra baixo ou pra cima, ele soh olha pra cima.
Vlw, Flw !!

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Bug de rotação no objeto

Mensagem por Rodrigo Santiago » Qua Dez 07, 2016 9:24 pm

O unity tem isso mesmo, tem algumas coisas que você tem que testar pra saber como ele interpreta depois ...

Nesse caso deve ser porque os cálculos de rotação do "FromToRotation" são diferente do que você está pensando. e ele roda 'por cima' pra igualar ao vetor. Já tentou usar EulerAngles ?

Avatar do usuário
Adilson
Membro
Membro
Reações: 0
Mensagens: 114
Localização: Curitiba Parana

Re: Bug de rotação no objeto

Mensagem por Adilson » Qua Dez 07, 2016 9:43 pm

Eu sou novo nisso amigo, poderia me dar uma ajudinha e me explicar isso ai, talves funcione :'(
Vlw, Flw !!

Avatar do usuário
Rodrigo Santiago
Colaborador
Colaborador
Reações: 0
Mensagens: 273

Re: Bug de rotação no objeto

Mensagem por Rodrigo Santiago » Qua Dez 07, 2016 10:00 pm

Primeiro, como vc quer rodar apenas no eixo Y (girando de cima), você pode usar ângulos normais.

por exemplo :

Código: Selecionar todos

 newRotation.eulerAngles = new Vector(0,180,0);


MAS ,como você já fez um monte de coisa pra desse jeito , tenta usar SetLookRotation

Código: Selecionar todos

Quaternion newRotation = Quaternion.SetLookRotation(d);

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes