반응형
[Unreal/C++] Game Mode HUD 클래스 변경하기
게임 모드 베이스 클래스와 HUD 클래스를 만든다.
게임모드 베이스에서 HUD클래스를 참조하고 생성자에서 가져온다.
잘 가져왔는지 확인하고 HUD클래스를 변경한다.
C++ 클래스(게임모드, HUD)를 만든다.
블루프린트로 진행하는 경우 클래스를 상속받는 블루프린트 클래스를 만든다.
Edit -> Project Setting -> Map&Mode -> Default Game Mode 셋팅에서 변경한다.
블루프린트를 상속한 경우 게임모드가 잠기지 않아 편하게 바꿀 수 있다.
하지만 C++로 작성된 게임모드의 경우 선택된 게임모드를 변경할 수 없다.
blueprint로 상속하지 않고 C++만으로 설정한다면 하단 선택된 게임 모드를 직접 설정해줘야한다.
생성한 게임모드 클래스를 수정해준다.
//GameMode.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MainProjectGameModeBase.generated.h"
UCLASS()
class MAINPROJECT_API AMainProjectGameModeBase : public AGameModeBase
{
GENERATED_BODY()
public :
AMainProjectGameModeBase(); // 생성자
};
//GameMode.cpp
#include "MainProjectGameModeBase.h"
#include "MainHUD.h" // 생성한 HUD 클래스
AMainProjectGameModeBase::AMainProjectGameModeBase()
{
// 생성자에서만 사용할 수 있는 ConstructorHelpers 기능을 활용한다.
// blueprint 클래스를 가져오는 경우 맨 끝에 _C를 추가해 주는 것이 좋다.
ConstructorHelpers::FClassFinder<AMainHUD> hud(L"Blueprint'/Game/Settings/BP_MainHUD.BP_MainHUD_C'");
verifyf(hud.Succeeded(), L"asset.Succeeded()"); // 성공?
HUDClass = hud.Class;
}
언리얼의 경우 에디터에 적용되는 것이 재빠르지 않다.
디폴트 값으로 지정되지 않는 경우 에디터를 재실행한다.
반응형
'Unreal > Manual' 카테고리의 다른 글
Unreal The Game has crashed and will close (0) | 2023.11.20 |
---|---|
Unreal 뷰포트에서 오브젝트 그룹 선택하기 (0) | 2023.11.20 |
Unreal C++ Default Game Mode 변경하기 (0) | 2023.11.19 |
Unreal 언리얼 데디케이티드 서버(Dedicated Server) 셋팅 (4) (0) | 2023.11.16 |
Unreal 언리얼 데디케이티드 서버(Dedicated Server) 셋팅 (3) (0) | 2023.11.14 |