Ejemplo n.º 1
0
    void Update()
    {
        float h = Input.GetAxis("Horizontal");

        if (h == 0)
        {
            if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.X))
            {
                descanso = Time.time + tempoParaDescanso;
            }

            if (Posicao == PosicaoPersonagem.Descanso && Input.GetKey(KeyCode.UpArrow))
            {
                Posicao = PosicaoPersonagem.AcimaEsquerda;
            }

            if (Posicao == PosicaoPersonagem.Descanso && Input.GetKey(KeyCode.X))
            {
                Posicao = PosicaoPersonagem.ParadoEsquerda;
            }

            if (Posicao == PosicaoPersonagem.DiagonalDireita)
            {
                Posicao = PosicaoPersonagem.ParadoDireita;
            }

            if (Posicao == PosicaoPersonagem.CorrendoDireita)
            {
                Posicao = PosicaoPersonagem.ParadoDireita;
            }

            if (Posicao == PosicaoPersonagem.ParadoDireita && Input.GetKey(KeyCode.UpArrow))
            {
                Posicao = PosicaoPersonagem.AcimaDireita;
            }

            if (Posicao == PosicaoPersonagem.AcimaDireita && !Input.GetKey(KeyCode.UpArrow))
            {
                Posicao = PosicaoPersonagem.ParadoDireita;
            }

            if (Posicao == PosicaoPersonagem.DiagonalEsquerda)
            {
                Posicao = PosicaoPersonagem.ParadoEsquerda;
            }

            if (Posicao == PosicaoPersonagem.CorrendoEsquerda)
            {
                Posicao = PosicaoPersonagem.ParadoEsquerda;
            }

            if (Posicao == PosicaoPersonagem.ParadoEsquerda && Input.GetKey(KeyCode.UpArrow))
            {
                Posicao = PosicaoPersonagem.AcimaEsquerda;
            }

            if (Posicao == PosicaoPersonagem.AcimaEsquerda && !Input.GetKey(KeyCode.UpArrow))
            {
                Posicao = PosicaoPersonagem.ParadoEsquerda;
            }

            switch (Posicao)
            {
            case PosicaoPersonagem.ParadoEsquerda:
                anim.SetTrigger("PararEsquerda");
                break;

            case PosicaoPersonagem.AcimaEsquerda:
                anim.SetTrigger("PararAcimaEsquerda");
                break;

            case PosicaoPersonagem.AcimaDireita:
                anim.SetTrigger("PararAcimaDireita");
                break;

            case PosicaoPersonagem.ParadoDireita:
                anim.SetTrigger("PararDireita");
                break;

            default:
                anim.SetTrigger("PararFrente");
                break;
            }
        }

        if (h > 0)
        {
            descanso = Time.time + tempoParaDescanso;

            if (Input.GetKey(KeyCode.UpArrow))
            {
                Posicao = PosicaoPersonagem.DiagonalDireita;

                anim.SetTrigger("CorrerDiagonalDireita");
            }
            else
            {
                Posicao = PosicaoPersonagem.CorrendoDireita;

                anim.SetTrigger("CorrerDireita");
            }
        }

        if (h < 0)
        {
            descanso = Time.time + tempoParaDescanso;

            if (Input.GetKey(KeyCode.UpArrow))
            {
                Posicao = PosicaoPersonagem.DiagonalEsquerda;

                anim.SetTrigger("CorrerDiagonalEsquerda");
            }
            else
            {
                Posicao = PosicaoPersonagem.CorrendoEsquerda;

                anim.SetTrigger("CorrerEsquerda");
            }
        }

        if (Time.time > descanso)
        {
            Posicao = PosicaoPersonagem.Descanso;
        }
    }
Ejemplo n.º 2
0
    void Awake()
    {
        anim = GetComponent <Animator> ();

        Posicao = PosicaoPersonagem.Descanso;
    }