
▣ Initialize() 함수 (가상 함수)
위젯이 생성될 때 호출되는 함수로, UUserWidget 클래스에서 상속받은 후 override 키워드로 재정의됨.
버튼 이벤트 바인딩 등을 설정하는 데 사용될 가능성이 있음.
▣ UPROPERTY(meta = (BindWidget))
BindWidget 속성을 사용하면, UMG(언리얼 모션 그래픽)에서 디자이너가 만든 버튼 위젯을 C++ 코드의 변수에 자동으로 연결할 수 있음.
즉, HostButton과 JoinButton은 WB_Widget에서 같은 이름으로 존재하는 버튼과 자동으로 매칭됨.
UButton* 타입으로 선언되어 있으며, UI에서 버튼을 클릭하면 특정 동작을 수행하도록 연결 가능.
▣ meta란?
meta는 Unreal Engine의 UPROPERTY와 UFUNCTION 매크로에서 추가적인 메타데이터를 제공하는 옵션입니다.
즉, 특정 속성을 지정하여 언리얼 엔진이 해당 변수나 함수의 동작을 조정할 수 있도록 합니다.
설명: BindWidget을 사용하면, UMG에서 디자인한 위젯과 C++ 변수가 자동으로 연결됩니다.
조건: 위젯 블루프린트에서의 변수 이름과 C++ 변수 이름이 동일해야 함.
meta 속성설명
BindWidget | UMG 위젯을 C++ 변수에 자동 바인딩 |
AllowPrivateAccess = "true" | private 변수도 블루프린트에서 접근 가능 |
ClampMin = "값" | 변수의 최소값 제한 |
ClampMax = "값" | 변수의 최대값 제한 |
Tooltip = "설명" | 변수에 대한 설명을 에디터에서 표시 |
EditCondition = "변수명" | 특정 변수가 true일 때만 해당 변수 수정 가능 |
DisplayName = "이름" | 언리얼 에디터에서 변수의 표시 이름 변경 |
▣ UFUNCTION() 매크로
HostButtonClicked()와 JoinButtonClicked() 함수는 버튼 클릭 이벤트를 처리하는 함수.
UFUNCTION을 사용하면 UI 위젯 내부에서 동적으로 버튼과 이벤트를 연결할 수 있음.
▣ UMultiplaySessionsSubsystem* MultiplaySessionsSubsystem
멀티플레이 세션을 관리하는 서브시스템 클래스의 포인터.
Unreal Engine의 **서브시스템(Subsystem)**을 활용하여 네트워크 멀티플레이 관련 기능을 분리하고 관리하는 역할.
UMultiplaySessionsSubsystem은 커스텀 클래스로, 멀티플레이 관련 기능을 확장하는 데 사용될 가능성이 높음.


▣ 코드 설명
GetGameInstance()를 호출하여 현재 게임 인스턴스를 가져옴.
GameInstance->GetSubsystem<UMultiplaySessionsSubsystem>()을 사용하여 멀티플레이 세션 서브시스템을 가져와 변수 MultiplaySessionsSubsystem에 저장.
UMultiplaySessionsSubsystem은 세션을 생성하고 관리하는 커스텀 서브시스템 클래스.

▣ 코드 설명
Super::Initialize()를 먼저 호출하여 기본 초기화를 수행.
HostButton과 JoinButton의 클릭 이벤트를 바인딩하여, 버튼을 클릭하면 해당 함수가 실행되도록 설정.

▣ 코드 설명
GEngine->AddOnScreenDebugMessage()를 사용하여 화면에 디버그 메시지를 표시 (디버깅용).
MultiplaySessionsSubsystem을 통해 새로운 멀티플레이 세션을 생성 (CreateSession(8, "FreeForAll")).
8 → 최대 플레이어 수
"FreeForAll" → 게임 모드 (모두가 적)


▣ 언리얼엔진 에디터를 닫고 Binaries, Intermediate 폴더를 삭제하고 Generate을 합니다.

▣ 다시 프로젝트를 열고 버튼을 클릭하면 함수에 있는 TEXT가 호출되는걸 확인할 수 있습니다.
'[ Unreal5 ] > - 언리얼엔진5 멀티' 카테고리의 다른 글
언리얼엔진5 Menu Class Setup (0) | 2025.03.03 |
---|---|
언리얼엔진5 Plugin Create Session Interface Delegate (0) | 2025.02.25 |
언리얼엔진5 Multiplay Plugin Create (0) | 2025.02.19 |
언리얼엔진5 Session Join (0) | 2025.02.18 |
언리얼엔진5 Session Join Setup (0) | 2025.02.15 |
댓글