강의

멘토링

커뮤니티

Inflearn Community Q&A

anonymous79426026's profile image
anonymous79426026

asked

[MMORPG Game Development Series with C# and Unity] Part3: Unity Engine

State pattern

_state변수 질문

Written on

·

372

0

27번째줄 코드에 _state = PlayerState.Idle라고 되있는데 57번째 줄 switch(_state) 라 하면안 UpdateIdle만 실행되야 하지않나요 전부다 실행되는데 왜그런거죠?

C#unity

Answer 5

0

visual studio에 찾기기능으로 _state를 돌려보니깐 중간에 ray부분에서 PlayerState.Moving으로 바꿨네요 감사합니다

0

이렇게 확인하는것이 맞나요?

Rookiss님의 프로필 이미지
Rookiss
Instructor

네. _state를 Moving으로 바꾼 적이 없다면,
유니티 에디터 툴 상에서 고치지 않았는지,
그것도 아니라면 코드 상에서 _state = Moving으로 바꾸는 부분에
breakpoint를 걸고 다시 실행해보세요

0

Rookiss님의 프로필 이미지
Rookiss
Instructor

위 내용만으로는 딱히 문제가 없어 보이는데요.
로그보단 breakpoint를 걸고 유니티에 연결해서 살펴보시는게 정확합니다.
UpdateMoving() 안에다 breakpoint를 걸고 콜스택을 확인해보세요

0

여기서 _state가 PlayerState.Idle니깐 UpdateIdle함수만 실행되여야 하는데 UpdateMoving함수도 실행됩니다( UpdateIdle함수는 "UpdateIdle"를 Debug.Log로 출력해서 실행되는걸 확인했고 UpdateMoving함수는 "UpdateMoving Moving"이 출력되고 움직이는 코드가 실행되는걸로 함수가 실행됬다는것을 확인했습니다)

0

Rookiss님의 프로필 이미지
Rookiss
Instructor

네 Update에서 상황에 따라 switch-case로 골라서
idle이면 UpdateIdle 호출하기 때문에 그게 맞는데요.
어떻게 코드를 작성하셨는지 스샷을 보여주셔야 정확히 답변을 드릴 수가 있을 것 같네요

anonymous79426026's profile image
anonymous79426026

asked

Ask a question