트러블 슈팅

멀티플레이 (데디서버) 캐릭터 수영 로직 적용 안되는 문제

Turtle_Jun 2025. 10. 3. 21:50

⚠️ 문제

  • 캐릭터가 수영 상태(Swimming)일 때 W/A/S/D 입력을 받아도 이동이 되지 않음
  • 기본 이동은 정상 작동하지만, 수영 로직에서는 입력값이 블루프린트로 전달되지 않아 제어 불가

 

- 기존 방식: W/A/S/D 키 입력을 각각 처리하여 MoveForward, MoveRight 값을 직접 세

 

 

 

  • 코드 리팩토링 후: Move() 함수에서 Axis.X, Axis.Y 입력을 바로 처리하여 AddMovementInput에 전달
  • 문제: 수영 로직은 블루프린트에서 Move_X, Move_Y 변수를 참조하는데, 코드에서 해당 값들을 세팅하지 않아 블루프린트가 입력을 읽을 수 없음

 

🚧 조치

 

  1. Move_X, Move_Y 변수를 캐릭터 클래스에 추가
  2. Move() 함수에서 Axis.X, Axis.Y 값을 각각 Move_X, Move_Y에 대입
  3. 블루프린트 수영 로직에서 Move_X, Move_Y 변수를 읽어와 기존처럼 Forward / Right 벡터에 적용
  4. 결과적으로 수영 모드에서도 입력이 블루프린트로 정상 전달됨

💡 결과

  • 수영 상태에서도 W/A/S/D 입력값이 Move_X, Move_Y를 통해 블루프린트 로직에 정상 전달됨
  • 캐릭터가 수영 모션과 함께 의도한 방향으로 부드럽게 이동 가능해짐
  • 기존 지상 이동 로직(AddMovementInput)과 수영 로직(블루프린트 기반)이 상호 간섭 없이 공존하도록 구조 개선 완료