UE5 学习记录
>> 在 AssetManager 里绑定资源
- 注意:要把 HasBluePrintClass 打勾
>> UMG项目配置
- 在 yourProjectName.Build.cs 里添加 “UMG”
using UnrealBuildTool;
public class SJSJ_UE : ModuleRules {
public SJSJ_UE(ReadOnlyTargetRules Target) : base(Target) {
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore",
"EnhancedInput",
"UMG" // 就是这一行
});
}
}
- 编译一下工程,以导入对
UMG 的支持
>> 如何从蓝图(prefab)生成一个UI
- 编写一个UI脚本,记得必须
#include "Blueprint/UserWidget.h"
#pragma onc
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "PanelLogin.generated.h"
UCLASS()
class SJSJ_UE_API UPanelLogin : public UUserWidget {
GENERATED_BODY()
};
- 通过脚本打开UI
#include "ClientMain.h"
#include "PanelLogin.h"
#include "Blueprint/UserWidget.h"
// Sets default values
AClientMain::AClientMain() {
PrimaryActorTick.bCanEverTick = true;
}
void AClientMain::BeginPlay() {
// #include "Blueprint/UserWidget.h"
// CreateWidget 属于这个头文件
auto playerController = GetWorld()->GetFirstPlayerController();
UPanelLogin *login = (UPanelLogin)CreateWidget<UUserWidget>(playerController, this->loginPrefab);
login->AddToViewport();
// 注意在需要时移除
// login->RemoveFromParent();
}