Noticias

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

Rotar sprite derecha izquierda

Iniciado por marboxrem, Octubre 23, 2015, 09:41:23 PM

Tema anterior - Siguiente tema
Octubre 23, 2015, 09:41:23 PM Ultima modificación: Octubre 23, 2015, 09:41:39 PM por marboxrem
Buenas, tengo una consulta, tengo este script que controla a mi personaje , lo que quiero que haga es que cuando presione la tecla d mi sprite mire para la derecha y cuando presione la tecla a mi sprite gire a la izquierda, agradeceria si alguien me da una solucionpublic class PlayerMovement : MonoBehaviour {    public float speed;
    public float jumMeight;
    public GameObject Ataque_a;
    //Direccion del player
    public Vector3 direction = Vector3.zero;
    float verticalVelocity = 0;
    //Fin del movimiento del player    //Componentes
    CharacterController cc;
    Animator anim;
    //Final de los compoenes.
    // Use this for initialization
    void Start () {
        //Player info
        speed = 7f;
        jumMeight = 8f;
        //Final Player info.        //Componentes
        cc = GetComponent<CharacterController>();
        anim = GetComponent<Animator>();
    
    }
    
    // Update is called once per frame
    void Update () {
        //El jugador se movera con AD, o con las flechas direccionales.
        direction = transform.rotation * new Vector3(Input.GetAxisRaw("Horizontal"), 0, 0);        //si el jugador que mueve ajustar la velocidad de la animación a la Magnitud de ls direcciones
        //anim.Setfloat("Speed",direction.magnitude);        //Si en el Character Controller se fundamenta luego permitir que el reproductor de salto
        if(cc.isGrounded && Input.GetButton("Jump")) {
            //El player salta en vertical con la W
            verticalVelocity = jumMeight;
        }
    }    void FixedUpdate(){
        Vector3 dist = direction * speed * Time.deltaTime;
        //Jumping
        if(cc.isGrounded && verticalVelocity < 0){
           verticalVelocity = Physics.gravity.y * Time.deltaTime;        } else {
            if(Mathf.Abs(verticalVelocity)> jumMeight * 0.75) {
                anim.SetBool("Jumping" ,true);            }
            //Aplicar Gravedad
            verticalVelocity += Physics.gravity.y * Time.deltaTime;
        }        //Si la verticalVelocity es actual al movimiento por cada frame
        dist.y = verticalVelocity * Time.deltaTime;        //Aplicar el movimiento del cc
        cc.Move(dist);
    }
}

No es necesario crear una animación diferente para eso. Puedes cambiar la escala del eje horizontal entre +1 y -1, desde la funcion LateUpdate().

La solucion que te plantea kaito es buena, pero si quieres visita la pagina walkersboys.com, ahi tienen un tutorial de mario 2d muy bueno con el uso de sprites, yo lo hice y me resultó muy útil.

Etiquetas: