03/19 TIL

김재혁·2025년 3월 19일

야구게임 만들기

빌드 문제 발생

  • 코드 작성 후 빌드 하는데 처음보는 오류가 뜸
    1>ChatWidget.gen.cpp.obj : error LNK2019: "declspec(dllimport) class UEnum * cdecl ZConstruct_UEnum_SlateCore_ETextCommit(void)" (__imp?Z_Construct_UEnum_SlateCore_ETextCommit@@YAPEAVUEnum@@XZ)"void cdecl dynamic initializer for 'public: static struct UECodeGen_Private::FBytePropertyParams const Z_Construct_UFunction_UChatWidget_OnTextCommitted_Statics::NewProp_CommitMethod''(void)" (??E?NewProp_CommitMethod@Z_Construct_UFunction_UChatWidget_OnTextCommitted_Statics@@2UFBytePropertyParams@UECodeGen_Private@@B@@YAXXZ) 함수에서 참조되는 확인할 수 없는 외부 기호
    Build.cs 파일에서 이부분이 주석처리 되어있음
  • Slate는 엔진 내에서 사용자 인터페이스를 구성하는 시스템.
  • SlateCore는 그 기반이 되는 저수준 기능을 제공.
    -> UI를 쓰려면 Slate, SlateCore가 활성화 되어있어야 함.

에디터 오류

  • 서버나 리모트 컨트롤러에서 위젯을 생성할 수 없기 때문에, BeginPlay()에서 로컬 플레이어인지 확인 후 위젯이 생성되도록 설정

기존

수정

BaseBallLib 활용

  • 정의한 함수들을 GameMode에서 참조하도록 함수를 작성

자리수 오류

  • 2자리를 입력하면 다시 입력할 수있게끔 기회를 주지않고
checkf((Index >= 0) & (Index < ArrayNum),TEXT("Array index out of bounds: %lld into an array of size %lld"),(long long)Index, (long long)ArrayNum); // & for one branch

이부분에서 그냥 중단되어버림.

해결책

  • Server_SendMessage_Validate에서 길이가 3자리일때 통과하도록 수정.
  • OnTextCommitted에도 3자리인지 확인 후 조건이 만족되면 SendMessage를 호출하도록 수정.

(수정 전)

서버 문제

  • 로직 자체는 제대로 작동하는 것 같은데 서버가 제대로 분리되지 않는 것 같음 따로 지정해줘야할게 있나 찾아봄.

중간 결과 창

  • Strike랑 Ball의 값이 계속 Host창에만 뜨고 Guest 창에는 안뜸.
  • 그런데 채팅은 정상적으로 입력됨.
  • 문제점 찾는게 좀 걸릴것 같음.

0개의 댓글