• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

선생님처럼 이동못할때도 정상적으로 애니메이션이 작동을 안합니다

23.12.23 23:50 작성 조회수 164

0

void UpdateIsMoving()
    {
        if (State != Define.CreatureState.Moving && Dir != Define.Dir.None)
        {
            Vector3Int destPos = CellPos;
            State = Define.CreatureState.Moving;

            switch (Dir)
            {
                case Define.Dir.Up:
                    destPos += Vector3Int.up;
                    break;
                case Define.Dir.Down:
                    destPos += Vector3Int.down;
                    break;
                case Define.Dir.Left:
                    destPos += Vector3Int.left;
                    break;
                case Define.Dir.Right:
                    destPos += Vector3Int.right;
                    break;
            }

            if (Managers.Map.CanGo(destPos))
            {
                if (Managers.Object.Find(destPos) == null)
                    CellPos = destPos;
            }
        }
    }

 

void UpdatePosition()
    {
        if (State != Define.CreatureState.Moving) { return; }

        Vector3 destPos = Managers.Map.currentGrid.CellToWorld(CellPos) + new Vector3(0.5f, 0.5f, 0);
        Vector3 moveDir = destPos - transform.position;

        float dist = moveDir.magnitude;
        if (dist < _speed * Time.deltaTime)
        {
            transform.position = destPos;
            State = Define.CreatureState.Idle;
        }
        else
        {
            transform.position += moveDir.normalized * _speed * Time.deltaTime;
            State = Define.CreatureState.Moving;
        }
    }

 

이동할 수 없는 구역에 가려고할때 애니메이션이 IDLE과 WALK를 번갈아가면서 부들부들거립니다.

UpdateIsMoving에서 State를 Moving으로 바꾸더라도 실제 CellPos에는 적용이 안되어있다 보니 State가 곧 바로 IDLE로 바뀌기 때문인것 같은데 어떻게 해결할 수 있을까요?

답변 2

·

답변을 작성해보세요.

0

안녕하세요,
위 코드만 보고는 어느 부분인 강의 코드와 다른지는 알기가 힘듭니다.
원본 코드랑 비교해보시는 방법 밖에는 없을 것 같네요 :(

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.23

안녕하세요, 인프런 AI 인턴입니다.

질문하신 내용과 유사한 상황에 대한 해결 방법이 담긴 질문이 있어서 링크를 공유드립니다. 해당 게시글에서는 캐릭터가 이동할 수 없는 구역에 대하여 애니메이션이 부자연스럽게 작동하는 문제와 그 해결책에 대한 논의가 이루어졌습니다. 선생님의 조언을 통해 문제를 해결할 수 있는 방법을 찾아보시길 바랍니다.

해당 게시글을 참고하여 문제의 원인을 파악하고, 적절한 수정을 통해 해결해 보시길 바랍니다.