Avatar do usuário
Adilson
Membro
Membro
Autor
Mensagens: 117
Registrado em: Qua Set 23, 2015 8:01 pm
Localização: Curitiba Parana
Karma: 142

Bug de rotação no objeto

Qua Dez 07, 2016 6:07 pm

uso o seguinte codigo com a finalidade de conseguir fazer o objeto olhar para onde esta andando:
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 !!

Tags:
 
Avatar do usuário
WellingtonBecker
Membro
Membro
Mensagens: 57
Registrado em: Seg Mai 16, 2016 8:28 pm
Karma: 113

Re: Bug de rotação no objeto

Qua Dez 07, 2016 6:26 pm

Vector3 t = new Vector3 (transform.position.x + (horizontal*3), transform.position.y + (vertical*3), transform.position.z );
 
Avatar do usuário
Adilson
Membro
Membro
Autor
Mensagens: 117
Registrado em: Qua Set 23, 2015 8:01 pm
Localização: Curitiba Parana
Karma: 142

Re: Bug de rotação no objeto

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
Mensagens: 279
Registrado em: Sáb Ago 22, 2015 8:17 am
Karma: 375

Re: Bug de rotação no objeto

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
Autor
Mensagens: 117
Registrado em: Qua Set 23, 2015 8:01 pm
Localização: Curitiba Parana
Karma: 142

Re: Bug de rotação no objeto

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
Mensagens: 279
Registrado em: Sáb Ago 22, 2015 8:17 am
Karma: 375

Re: Bug de rotação no objeto

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 :
 newRotation.eulerAngles = new Vector(0,180,0);


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

Quaternion newRotation = Quaternion.SetLookRotation(d);
1

Quem está online

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