其他
UE5编译时无法找到头文件 && UE5使用最新C++ && 使用Release库
修改Build.cs文件
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
public class LibTest : ModuleRules
{
public LibTest(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
PrivateDependencyModuleNames.AddRange(new string[] { });
// 最新C++标准
CppStandard = CppStandardVersion.Latest;
// 添加头文件和lib目录
PublicIncludePaths.Add("C:\\Data\\CPP\\GameProject\\Buffer");
PublicIncludePaths.Add("C:\\Data\\CPP\\GameProject\\Message");
PublicAdditionalLibraries.Add("C:\\Data\\CPP\\GameProject\\x64\\Release\\Buffer.lib");
PublicAdditionalLibraries.Add("C:\\Data\\CPP\\GameProject\\x64\\Release\\Message.lib");
}
}
VS不识别mingw编译出的库
需要在clion中设置cmake的Generator为VS系列 如 Visual Studio 17 2022
热编译莫名出错
关闭UE5,使用VS直接编译,编译成功后再次打开UE5 后续即可进行正常编译。
命名规范
模板类的前缀为T。
继承自UObject的类前缀为U。
继承自AActor的类前缀为A。
继承自SWidget的类前缀为S。
抽象界面类的前缀为I。
列举的前缀为E。
布尔变量必须以b为前缀(例如 bPendingDestruction 或 bHasFadedIn)。
其他多数类均以F为前缀,而部分子系统则以其他字母为前缀。
常用函数
日志打印
GEngine->AddOnScreenDebugMessage(-1, 1.0f, FColor::Red, FString::Printf(TEXT("DeltaTime: %f"), DeltaTime));
GEngine->AddOnScreenDebugMessage(-1, 1.0f, FColor::Red, FString::Printf(TEXT("FramePerSec: %d"), FramePerSec));
蓝图
使用C++创建蓝图函数库
// .h
UFUNCTION(BlueprintCallback, Category="MyCategory")
static FString HelloUnreal(int a, int b);
// .cpp
static FString XXX::HelloUnreal(int a, int b)
{
return FString::Printf(TEXT("HelloUnreal %d + %d = %d"), a, b, a + b);
}