UE5 学习记录

>> 在 AssetManager 里绑定资源

  1. 注意:要把 HasBluePrintClass 打勾

>> UMG项目配置

  1. 在 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" // 就是这一行
		});
	}
}
  1. 编译一下工程,以导入对 UMG 的支持

>> 如何从蓝图(prefab)生成一个UI

  1. 编写一个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()
};
  1. 通过脚本打开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();
}