inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

ObjectManager

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

346

dpcks5959

작성한 질문수 14

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로 바뀌기 때문인것 같은데 어떻게 해결할 수 있을까요?

C# unity

답변 2

0

Rookiss

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

0

인프런 AI 인턴

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

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

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

MessagePack

0

87

1

본인 플레이어 이동 관련 질문

0

51

1

Part7 Part9 질문이 있습니다.

0

75

1

.

0

117

1

.

0

107

2

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

92

1

타일 팔레트 깔았는데도 안돼요

0

122

2

2D로 그냥 만들어도 되나요?

0

85

2

지난 강의와 이어지는게 맞을까요?

0

84

2

순환참조 문제로 인해 발생하는 문제는 없을까요?

0

162

2

유니티 클라와 C++서버연동

0

278

2

멀티플레이 테스트 환경 관련 질문입니다

0

207

3

강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!

0

150

2

코드 관련한 몇 가지 질문입니다!

0

153

2

3d 프로젝트 이동 동기화 관련

0

323

4

파트 7 스트레스 테스트 질문 드립니다.

1

190

2

맵 이동 방식

0

134

0

맵 이동 관련해서 질문드립니다.

0

91

1

안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,

0

204

2

안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!

0

161

1

[팁] 2024년 기준 버전 이슈?

0

458

1

SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?

1

204

1

지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것

0

337

2

PushAfter 사용 질문

0

193

1