728x90
반응형
1.버튼 콜백 생성
UButton
The button is a click-able primitive widget to enable basic interaction, you can place any other widget inside a button to make a more complex and interesting click-able element in your UI.
docs.unrealengine.com
//Menu.h
class UButton;
protected:
virtual bool Initialize()override;
private:
UPROPERTY(meta = (BindWidget))
UButton* Host_Btn; //위젯의 버튼 이름과 동일해야됨
UPROPERTY(meta = (BindWidget))
UButton* Join_Btn; //위젯의 버튼 이름과 동일해야됨
UFUNCTION()
void HostBtnClick();
UFUNCTION()
void JoinBtnClick();
//Menu.cpp
#include "Components/Button.h"
bool UMenu::Initialize()
{
if (!Super::Initialize())return false;
if (Host_Btn)Host_Btn->OnClicked.AddDynamic(this,&UMenu::HostBtnClick);
if(Join_Btn)Join_Btn->OnClicked.AddDynamic(this, &UMenu::JoinBtnClick);
return true;
}
2.서브시스템에 접근
우선 세션서브시스템에 대한 변수를 선언한다. UMultiplayerSessionSubsystem은 UGameInstanceSubsystem을 상속받고 있다.
//Menu.h
private:
class UMultiplayerSessionSubsystem* MultiplayerSessionSubsystem;
//모든 온라인 세션 핸들을 처리하도록 설계된 서브시스템
//Menu.cpp
#include "MultiplayerSessionSubsystem.h"
void UMenu::MenuSetUp()
{
UGameInstance* GameInstance=GetGameInstance();
if (GameInstance)
{
MultiplayerSessionSubsystem=GameInstance->GetSubsystem<UMultiplayerSessionSubsystem>();
//게임 인스턴스에 접근
}
}
void UMenu::HostBtnClick()
{
if (MultiplayerSessionSubsystem)
{
MultiplayerSessionSubsystem->CreateSession(4,FString("Free For All"));
}
}
728x90
반응형
'UE5 > UE5 MultiPlayerGame' 카테고리의 다른 글
MultiPlayerGame) 13. 서브시스템 콜백함수 (0) | 2022.06.14 |
---|---|
MultiPlayerGame) 12. 세션 만들기 (0) | 2022.06.13 |
MultiPlayerGame) 10. 메뉴클래스 (0) | 2022.06.09 |
MultiPlayerGame) 9. 세션인터페이스 델레게이트 설정 (0) | 2022.06.09 |
MultiPlayerGame) 8. 자체 서브시스템 생성 (0) | 2022.06.07 |
댓글