Jump to content
Sign in to follow this  
marboxrem

Rotar sprite derecha izquierda

Recommended Posts

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 solucion

public 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);
    }
}

Edited by marboxrem

Share this post


Link to post
Share on other sites

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().

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...