예제 #1
0
    void UpdateDirection()
    {
        Vector3 direction;

        if (m_MovementModel.IsDead())
        {
            Animator.SetFloat("DirectionX", 0);
            Animator.SetFloat("DirectionY", -1);
            Animator.SetBool("IsMoving", false);
            return;
        }

        if (m_MovementModel.IsPushing())
        {
            direction = m_MovementModel.GetPushingDirection();
        }
        else
        {
            direction = m_MovementModel.GetDirection();
        }

        if (direction != Vector3.zero)
        {
            if (direction.x > 0 && direction.y == 0)
            {
                Animator.SetFloat("DirectionX", 1);
                Animator.SetFloat("DirectionY", 0);
            }
            else if (direction.x < 0 && direction.y == 0)
            {
                Animator.SetFloat("DirectionX", -1);
                Animator.SetFloat("DirectionY", 0);
            }
            else if (direction.x == 0 && direction.y > 0)
            {
                Animator.SetFloat("DirectionX", 0);
                Animator.SetFloat("DirectionY", 1);
            }
            else if (direction.x == 0 && direction.y < 0)
            {
                Animator.SetFloat("DirectionX", 0);
                Animator.SetFloat("DirectionY", -1);
            }
            else if ((direction.x > 0 && direction.y > 0) || (direction.x > 0 && direction.y < 0))
            {
                Animator.SetFloat("DirectionX", 1);
                Animator.SetFloat("DirectionY", 0);
            }
            else if ((direction.x < 0 && direction.y > 0) || (direction.x < 0 && direction.y < 0))
            {
                Animator.SetFloat("DirectionX", -1);
                Animator.SetFloat("DirectionY", 0);
            }
        }

        Animator.SetBool("IsMoving", m_MovementModel.IsMoving());
    }