示例#1
0
    protected override void ChangeAnimation(Vector2 moveVector)
    {
        // 이동 애니메이션
        if (isMoving)
        {
            // 오른쪽
            if (moveVector.x > 0)
            {
                // 위
                if (moveVector.y > 0)
                {
                    if (beforeDir != BEHAVIOR_MODE.MOVE_TOPRIGHT)
                    {
                        // 이전에 발동된 Trigger을 해제
                        anim.ResetTrigger("TopLeft");
                        anim.ResetTrigger("BotLeft");
                        anim.ResetTrigger("BotRight");

                        // 새로운 이동 Trigger 지정
                        anim.SetTrigger("TopRight");

                        beforeDir = BEHAVIOR_MODE.MOVE_TOPRIGHT;
                    }
                }
                // 아래
                else
                {
                    if (beforeDir != BEHAVIOR_MODE.MOVE_BOTRIGHT)
                    {
                        // 이전에 발동된 Trigger을 해제
                        anim.ResetTrigger("TopLeft");
                        anim.ResetTrigger("BotLeft");
                        anim.ResetTrigger("TopRight");

                        // 새로운 이동 Trigger 지정
                        anim.SetTrigger("BotRight");

                        beforeDir = BEHAVIOR_MODE.MOVE_BOTRIGHT;
                    }
                }
            }
            // 왼쪽
            else
            {
                // 위
                if (moveVector.y > 0)
                {
                    if (beforeDir != BEHAVIOR_MODE.MOVE_TOPLEFT)
                    {
                        // 이전에 발동된 Trigger을 해제
                        anim.ResetTrigger("TopRight");
                        anim.ResetTrigger("BotLeft");
                        anim.ResetTrigger("BotRight");

                        // 새로운 이동 Trigger 지정
                        anim.SetTrigger("TopLeft");

                        beforeDir = BEHAVIOR_MODE.MOVE_TOPLEFT;
                    }
                }
                // 아래
                else
                {
                    if (beforeDir != BEHAVIOR_MODE.MOVE_BOTLEFT)
                    {
                        // 이전에 발동된 Trigger을 해제
                        anim.ResetTrigger("TopLeft");
                        anim.ResetTrigger("BotRight");
                        anim.ResetTrigger("BotRight");

                        // 새로운 이동 Trigger 지정
                        anim.SetTrigger("BotLeft");

                        beforeDir = BEHAVIOR_MODE.MOVE_BOTLEFT;
                    }
                }
            }
        }
        // 정지 애니메이션
        else
        {
            anim.SetTrigger("Idle");
            beforeDir = BEHAVIOR_MODE.IDLE;
        }
    }
示例#2
0
    private void ReverseChangeAnimation()
    {
        // 터치 후 이동중이라면..
        if (isMoving)
        {
            // 클릭 좌표가 플레이어보다 왼쪽에 있다.
            if (trans.position.x > moveVector.x)
            {
                // 클릭 좌표가 플레이어보다 아래에 있다.
                if (trans.position.y > moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_BOTLEFT))
                {
                    anim.SetTrigger("TopRight");

                    beforeDir = BEHAVIOR_MODE.MOVE_TOPRIGHT;
                }
                // 클릭 좌표가 플레이어보다 위에 있다.
                else if (trans.position.y <= moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_TOPLEFT))
                {
                    anim.SetTrigger("BotRight");

                    beforeDir = BEHAVIOR_MODE.MOVE_BOTRIGHT;
                }
            }
            // 클릭 좌표가 플레이어보다 오른쪽에 있다.
            else
            {
                // 클릭 좌표가 플레이어보다 아래에 있다.
                if (trans.position.y > moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_BOTRIGHT))
                {
                    anim.SetTrigger("TopLeft");

                    beforeDir = BEHAVIOR_MODE.MOVE_TOPLEFT;
                }
                // 클릭 좌표가 플레이어보다 위에 있다.
                else if (trans.position.y <= moveVector.y && !(beforeDir == BEHAVIOR_MODE.MOVE_TOPRIGHT))
                {
                    anim.SetTrigger("BotLeft");

                    beforeDir = BEHAVIOR_MODE.MOVE_BOTLEFT;
                }
            }
        }
        // 정지한 상태이면..
        else
        {
            // 이동하던 방향에 따라 캐릭터기 Idle 하며 바라보는 애니메이션 지정
            switch (beforeDir)
            {
            case BEHAVIOR_MODE.MOVE_BOTLEFT:
                anim.SetTrigger("Idle_BotLeft");
                break;

            case BEHAVIOR_MODE.MOVE_BOTRIGHT:
                anim.SetTrigger("Idle_BotRight");
                break;

            case BEHAVIOR_MODE.MOVE_TOPLEFT:
                anim.SetTrigger("Idle_TopLeft");
                break;

            case BEHAVIOR_MODE.MOVE_TOPRIGHT:
                anim.SetTrigger("Idle_TopRight");
                break;
            }
            beforeDir = BEHAVIOR_MODE.IDLE;
        }
    }