Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Alguien podria ayudarme con este script de movimientos.

Iniciado por iemaru, Marzo 03, 2017, 04:02:52 AM

Tema anterior - Siguiente tema
Marzo 03, 2017, 04:02:52 AM Ultima modificación: Marzo 03, 2017, 10:17:49 AM por pioj
Saludos, Tengo esta duda y es q estoy tratando de hacer un controlador para un personaje 3d pero se va a mover 2d. el script funciona bien claro no esta completo aun, pero mi duda es pq cuando presiono (A) el personaje gira para el lado opuesto pero no en su mismo eje? osea gira pero dejando un espacio...Pq entiendo q deberia hacer en un mismo eje.Curioso es q funciona con una caja (cubo) pero al usarlo en un personaje con animacion  pasa ese error. Alguien podria Decirme q sucede? o mostrame como hacer el giro hacia la izq de una mejor manera q la mia... Gracias!!! este es mi script:
 

    public float Vel = 3.0f;
    private bool IsGrounded = true; 
    public int y = 180;
 
    void Update ()
    {
        Control ();
    
    }
    void Control ()
    {
        if(IsGrounded == true){
        if(Input.GetKey("d")){
                transform.eulerAngles = new Vector3(,,);
                transform.Translate (Vel *Time.deltaTime,,);
         }
        }
        if (IsGrounded == true) {
            if (Input.GetKey ("s")) {
                transform.Translate (,,);
            }
        }
        if (IsGrounded == true) {
            if (Input.GetKey ("a")) {
                transform.eulerAngles = new Vector3(,y,);
                transform.Translate  (Vel *Time.deltaTime,,);
            }
        }
        if(IsGrounded == true){
        if(Input.GetKey("w")){
                transform.Translate (,Vel *Time.deltaTime,);
        }
    }
  }
}

 
 

Hola @iemaru
 
eso no tiene nada que ver con que el personaje tenga una animacion, porque en ese codigo no la "ejecutas" por ningun lado ... el problema casi seguro 100% es que la persona que hizo el modelo que estas utilizando puso el eje del personaje donde le dio la gana.

Es lo que dice @Arthure tienes que centrar el eje del personaje, o sea el GameObject donde tienes el script, con el modelo del personaje.

Una de 2: O se corrige el centro del modelo 3D del personaje... o metes el objeto de tu personaje dentro de un GameObject vacío, poniéndole posición (0, 0, 0) dentro del objeto vacío, entonces aplicar tu script sobre el objeto padre y así la rotación la hará al objeto que contiene al personaje. Eso sí, mira si con este cambio de estructura tendrías que adaptar el código de tu script (sobre todo en cuanto al tratamiento de las jerarquías).

Mi blog dobre desarrollo en Unity: http://histeriagamedev.wordpress.com



Muchas gracias por sus comentarios, El personaje fue hecho por mi en blender y trate de q los ejes quedaran iguales a los de unity, lo q sucede es  q soy noob en esto... y si fuera a centralizar los ejes desde blender seria ponerle un emty a mi personaje? gracias!

Etiquetas: