10/19/2020
输出日志
打印消息到视口的左上角:
#include "Engine/Engine.h"
if(GEngine)
{
GEngine->AddOnScreenDebugMessage(-1,4.0f,FColor::Red,SpawnLocation.ToString());
}
- GEngine 全局指针
- 第一个参数:-1表示无需更新刷新此消息,0表示刷新消息
- 第二个参数:消息显示多久
- 第三个参数: 消息显示的颜色
- 第四个参数:消息内容,类型FString格式
UE_LOG
打印消息到输出日志中
//临时标签的输出
UE_LOG(LogTemp,Log,TEXT("Message"));
- 第一个参数:标签
- 第二个参数:显示颜色和严重级别
- 第三个参数:消息内容
自定义标签
打开Window->Developer Tool->Output Log查看输出内容
//.h 头文件声明标签 叫Gun
DECLARE_LOG_CATEGORY_EXTERN(Gun, Log, All);
//.cpp
DEFINE_LOG_CATEGORY(Gun);
//输出
UE_LOG(Gun,Error,TEXT("THIS IS MESSAGE!"));
输出格式TCHAR*
UE_LOG 使用和printf一样的格式化输出形式,需要输出TChar*类型
TestHUDString
UE_LOG(LogClass, Log, TEXT("This is a testing statement. %s"), *TestHUDString);
UE_LOG(LogClass, Log, TEXT("This is a testing statement. %s"), *FVectorName.ToString());
注意解析号,需要把FString类型转换成TChar 类型
例子
FString healthMessage = FString::Printf(TEXT("You now have %f health remaining."), CurrentHealth);
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Blue, healthMessage);
//int TotalBeans = 10;
GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, FString::Printf(TEXT("TotalBeans: %d"),TotalBeans));
知识拓展
由于输出类型都是FString类型,所以如何转换成FString类型很重要
- FString::SanitizeFloat(FloatVariable);
- FString::FromInt(IntVariable);
- InBool ? TEXT(“true”) : TEXT(“false”);
- VectorVariable.ToString();