03/17 TIL

김재혁·2025년 3월 17일

야구 게임 만들기

RPC 검증 함수

UFUNCTION(Server, Reliable, WithValidation)
void Server_SendMessage(const FString& Message);

WithValidation : RPC 호출에 대한 검증을 위한 옵션

  • 클라이언트가 RPC를 호출할 때, 메세지 등의 데이터가 올바른지 검증하여 문제발생이나 보안 위협을 방지.
  • RPC를 호출 시, 서버가 클라이언트가 보낸 데이터를 검증할 수 있도록 하기 위한 두 개의 함수가 필요
_Implementation 함수 (실제 동작을 수행)
_Validate 함수 (데이터의 유효성을 검사)
  • 공백이나 글자수의 부족, 초과에 대한 경고 메세지를 추가할 계획

ChatWiget 생성

  • 채팅을 작성할 위젯을 만들어 Controller에서 위젯을 생성해 UI를 연동하기 위해 먼저 만들기
  • 블루프린트에서 이벤트로 할까도 했으나 다른 것도 코드로 작성한 김에 다 코드로 작성

NativeConstruct()

  • Widget 클래스를 작성하려고 자료를 찾다보니 이걸 써야한다고 함
  • 이벤트 바인딩이나 추가 초기화 작업을 위한 함수로써 위젯의 생성자(Constructor)는 객체가 메모리에 할당될 때 호출되나, 위젯의 하위 구성(자식 위젯, 바인딩된 위젯 등)이 완전히 생성되거나 초기화 되지 않은 상태일수 있음.
    -> 모든 구성 요소가 완전히 생성되고 난 후 호출되어 UI요소들이 존재하는 시점에서 초기화 작업을 진행하게 해줌.
  • OnTextCommitted 이벤트를 처리하기 위해 이 위젯이 완전히 생성된 후에 이벤트 바인딩을 해야함. 이때 NativeConstruct에서 해줌
  • 위젯이 한 번 구성될 때 호출되고, 위젯이 다시 생성될 때마다 호출할 수 있음.
void UChatWidget::NativeConstruct()
{
    Super::NativeConstruct();
    if (ChatInputBox)
    {
        ChatInputBox->OnTextCommitted.AddDynamic(this, &UChatWidget::OnTextCommitted);
    }
}
  • Super::NativeConstruct() : 반드시 부모의 NativeConstruct를 먼저 호출
  • OnTextCommitted 이벤트에 델리게이트를 추가

위젯을 초기화 하는 함수로 기억(초기화는 중요)

내일은 완성한 위젯을 Controller에서 적절히 쓰도록 Controller를 완성하기

0개의 댓글