Make Unreal REAL.
article thumbnail
Unreal Engine 5 C++ Multiplayer Shooter

 

현재 위젯 블루프린트에는 2개의 버튼이 있다.

 

 

부모 위젯 클래스인 Menu에서 버튼에 함수를 바인딩한다.

 

오버라이드한 Initialize() 함수에서는 각 버튼의 OnClicked 델리게이트에 함수를 등록할 것이다.

  • NativeConstruct() 함수를 사용해도 된다.

 

UPROPERTY(meta = (BindWidget)) 매크로를 지정해주고 변수 이름을 위젯 블루프린트 상의 이름과 똑같이 설정해주면, GetWidgetFromName() 함수로 위젯을 가져오지 않고도 자동으로 할당 된다.

  • 단, 위젯 이름이 다를 경우 크래시가 날 수 있으니 주의해야 한다.

 

같은 플러그인에 포함된 UMultiplayerSessionsSubsystem을 가져와 사용하기 위한 변수도 선언한다.

 

 

헤더를 포함한다.

 

 

게임 인스턴스의 서브시스템은 UGameInstance::GetSubsystem<UGameInstanceSubsystem>() 함수를 통해 가져올 수 있다.

 

EMouseLockMode::DoNotLock으로 설정하면 마우스가 게임 창 밖으로 나갈 수 있다.

 

 

Initialize() 함수에서 OnClicked 멀티캐스트 다이나믹 델리게이트를 통해 함수를 바인딩한다.

 

 

Host 버튼이 눌리면 화면에 메시지를 출력하고, 세션을 관리하는 게임 인스턴스 서브시스템을 통해 최대 4명이 참가 가능한 "FreeForAll"이라는 매치 종류의 세션을 생성한다.

 

 

참가 버튼은 일단 메시지만 출력하도록 한다.

 

 

버튼 바인딩에 성공했다.

  • 플러그인에서 수정한 코드는 컴파일해도 모듈이 핫 리로드되지 않는다.
  • 번거롭지만 매번 플러그인 폴더의 Binaries, Intermediate 폴더만 삭제하고 VS 파일을 재생성 해주어야 한다.
  • 언리얼 프로젝트는 실행시키면 뜨는 프롬프트에서 해당 플러그인 모듈만 다시 컴파일하면 된다.

 

profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그