UE5/UE5 MultiPlayerGame

MultiPlayerGame) 10. 메뉴클래스

PJNull 2022. 6. 9.
728x90
반응형

메뉴클래스

 

메뉴를 만드는 방법은 다양하다. 그럼에도 메뉴클래스를 만드는 이유는 한번 제작하면 새프로젝트에서 다시 만들 필요없다는 점에 있다. C++클래스를 만든후 블루프린트로 상속받을 예정이다.

1.메뉴클래스 생성

 

우선 위젯클래스를 생성해준다.

 

 

 

 

 

 

그후, 위젯을 사용하기 위해서 build.cs에 모듈을 추가해준다.

 

//MultiplayerSession.Build.cs


PublicDependencyModuleNames.AddRange(
		new string[]
		{
			"UMG",
			"Slate",
			"SlateCore"
		}
);

 

모듈을 추가했다면 기본적인 위젯설정을 해준다.

 

//Menu.h


public:
	UFUNCTION(BlueprintCallable)
		void MenuSetUp();
//Menu.cpp

void UMenu::MenuSetUp()
{
	AddToViewport();
	SetVisibility(ESlateVisibility::Visible);	
    
    bIsFocusable = true;
	UWorld* World=GetWorld();
	if (World)
	{
		APlayerController* PlayerController = World->GetFirstPlayerController();
		if (PlayerController)
		{
			FInputModeUIOnly InputModeData;
			InputModeData.SetWidgetToFocus(TakeWidget());
            //사용자 위젯지정
			InputModeData.SetLockMouseToViewportBehavior(EMouseLockMode::DoNotLock);
            //마우스를 뷰포트에 고정할지 여부
			PlayerController->SetInputMode(InputModeData);
            //구현사항을 플레이어 컨트롤러에 지정
			PlayerController->SetShowMouseCursor(true);
		}
	}
}

 

2.메뉴위젯 만들기

 

 

먼저 메뉴클래스를 상속받은 블루프린트를 생성한다.

 

 

블루프린트에서 버튼과 텍스트를 이용하여 host와 join을 생성한다.

 

생성했다면 프로젝트의 Binary,Intermediate,Save를 모두 지워준다.

 

그후 블루프린트창->레벨 블루프린트 열기->이벤트그래프에서 위젯을 생성해준다.

 

실행하면 이런식의 화면이 뜨게 된다.

728x90
반응형

댓글