cpp
void AItem::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp,Warning,TEXT("beginPlay"));//打印到日志面板
}
void AItem::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
UE_LOG(LogTemp, Warning, TEXT("DeltaTime:%f"), DeltaTime);//打印数字,在可变参数里追加要打印的数字,使用%f规定第一个参数为float类型 %d整数 %u无符号整数
}
UE_LOG:打印宏,打印日志到日志面板
参数一:日志的分类
可选级别:
LogTemp,临时日志
LogActor,Actor相关
LogCharacter,角色相关
LogUI,UI日志
LogAnimation,动画相关
LogGameplay,游戏逻辑
参数二:日志的级别
Dispaly:白色
Warning:黄色
Error:红色
Log:日志
Verbose:详细日志
VerVerbose:最详细的日志
参数3:要打印的内容
参数4...:可变参数
**GEngine->AddOnScreenDebugMessage() 打印日志到屏幕 **
cpp
void AItem::BeginPlay()
{
Super::BeginPlay();
if (GEngine)//在屏幕上打印
{
GEngine->AddOnScreenDebugMessage(1,60.f,FColor::Cyan,FString("Item_OnScreen Message"));
}
}
void AItem::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if (GEngine)
{
//打印带参数的字符串,使用FString的Printf方法
FString message = FString::Printf(TEXT("DeltaTime:%f"), DeltaTime);
GEngine->AddOnScreenDebugMessage(1, 60.f, FColor::Cyan, message);
GEngine->AddOnScreenDebugMessage(2, 60.f, FColor::Cyan, FString::Printf(TEXT("DeltaTime:%f"), DeltaTime));
}
}
GEngine是一个指针,通常会在Beginpaly前就初始化完成,但是为了规范起见,应该用if()检查指针是否为0,为0则为空指针
参数1:日志的key,同一个key不会重复显示
参数2:显示的时长
参数3:颜色 Cyan是青色
参数4:要打印的字符串,只能用FString生成
打印一个字符串参数
cpp
void AItem::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
if (GEngine)
{
FString Name = GetName();//Actor自带的方法,获取displayName
FString message = FString::Printf(TEXT("DeltaTime:%s"), *Name);//注意字符串的*不是解析指针,UE对这里进行了重载,*的实际作用是获取一个C风格的字符串,即char[]
GEngine->AddOnScreenDebugMessage(1, 60.f, FColor::Cyan, message);
}
}