UE_LOG 格式化占位符

UE_LOG 支持的一些常见格式化占位符的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
%d:用于有符号整数。
%u:用于无符号整数。
%x 或 %X:用于十六进制整数,分别表示小写字母和大写字母的十六进制数字。
%f:用于浮点数。
%e 或 %E:用于科学计数法表示的浮点数,分别表示小写字母和大写字母的指数部分。
%g 或 %G:用于浮点数,自动选择 %f 或 %e 表示,分别表示小写字母和大写字母的指数部分。
%s:用于字符串。
%c:用于字符。
%p:用于指针。
%ll:用于长长整数(64位整数)。
%o:用于八进制整数。
%T:用于 UObject 对象引用。
%b:用于布尔值。
%i:用于整数,与 %d 类似。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int32 PlayerScore = 100;
UE_LOG(LogTemp, Log, TEXT("Player's score is %d"), PlayerScore);

uint32 PlayerLives = 3;
UE_LOG(LogTemp, Log, TEXT("Player has %u lives remaining"), PlayerLives);

int32 Color = 0xFF00FF; // Purple color
UE_LOG(LogTemp, Log, TEXT("Color in hexadecimal: %x (lowercase) or %X (uppercase)"), Color, Color);

float PlayerHealth = 75.5f;
UE_LOG(LogTemp, Log, TEXT("Player's health is %.2f"), PlayerHealth);

char FirstInitial = 'J';
UE_LOG(LogTemp, Log, TEXT("Player's first initial is %c"), FirstInitial);

FString PlayerName = "John";
UE_LOG(LogTemp, Log, TEXT("Player's name is %s"), *PlayerName);

UObject* ObjectPtr = SomeObject; // Assume you have a pointer to a UObject
UE_LOG(LogTemp, Log, TEXT("Pointer to UObject is %p"), ObjectPtr);

int64 LargeValue = 9223372036854775807; // Maximum signed 64-bit integer
UE_LOG(LogTemp, Log, TEXT("Large value: %lld"), LargeValue);

bool IsGamePaused = false;
UE_LOG(LogTemp, Log, TEXT("Is the game paused? %b"), IsGamePaused);