• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

_state변수 질문

22.10.14 19:59 작성 조회수 239

0

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

답변 5

·

답변을 작성해보세요.

0

최성진님의 프로필

최성진

질문자

2022.10.17

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

0

최성진님의 프로필

최성진

질문자

2022.10.17

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

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

0

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

0

최성진님의 프로필

최성진

질문자

2022.10.17

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

0

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