调用全局变量GEngine指针调用函数 AddOnScreenDebugMessage节点,进行屏幕输出
void AddOnScreenDebugMessage{
int32 Key,
float TimeToDisplay,
FColor Di splayColor,
const FString & DebugMessage,
bool bNewerOnTop,
const FVector2D & TextScale
}
Key = -1时,则添加新的消息,不会覆盖旧有消息(当key为-1时,bNewerOnTop有效,直接添加到队列最上层)
Key不是-1时,则更新现有消息,效率更高
引入库在 MyGameModeBase C++文件中重写 BeginPlay()函数,借助全局变量GEngine指针调用函数 AddOnScreenDebugMessage
//在MyGameModeBase.h 文件
UCLASS()
class UE_C_API AMyGameModeBase : public AGameModeBase
{
GENERATED_BODY()
public:
//重写 BeginPlay()函数
virtual void BeginPlay()
};
//在 MyGameModeBase.cpp 文件
void AMyGameModeBase::BeginPlay()
{
//void UEngine::AddOnScreenDebugMessage(int32 Key, float TimeToDisplay, FColor DisplayColor, const FString & DebugMessage, bool bNewerOnTop, const FVector2D & TextScale)
GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Blue, TEXT("HI"));
}
把 MyGameModeBase 挂载到游戏模式重载里面,再运行就可以看到打印在屏幕上的内容了
如果出现中文乱码的情况:高级保存选项 -> 将编码设置为UTF-8格式
如果“文件” 的地方找不到 “高级保存选项” 这选项,需要添加:
这样就有“高级保存选项”啦。
使用宏UE_LOG进行控制台日志输出(日志会写入本地缓存)
日志类型冗余度,分为:
Fatal(会终止进程)致命问题
Error(会终止进程)错误问题
Warning、Display、Log(较常用的日志分类项)
Verbose (将日志详细信息记录到日志文档,但不向控制台输出)
VeryVerbose(将日志详细信息记录到日志文档,但不向控制台输出)
在 MyGameModeBase.cpp 文件中重写 BeginPlay()函数(和上面一样),使用宏UE_LOG进行控制台日志输出
void AMyGameModeBase::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp, Log, TEXT("你好!!!"));
}
这样就可以在控制台打印了
//-------------在MyGameModeBase.h文件:
//1.声明日志分类(宏)
//DECLARE_LOG_CATEGORY_EXTERN(自定义日志分类名称(Log开头), 日志默认级别(一般使用Log), 日志编译级别(高于此级别的不会被编译,一般用All));
DECLARE_LOG_CATEGORY_EXTERN(LogProjectName, Log, All);
UCLASS()
class UE_C_API AMyGameModeBase : public AGameModeBase
{
GENERATED_BODY()
virtual void BeginPlay();
};
//------------在MyGameModeBase.cpp文件:
//2.定义日志分类
//DEFINE_LOG_CATEGORY(CategoryName),放外面的 LogProjectName变成全局类型名
DEFINE_LOG_CATEGORY(LogProjectName);
void AMyGameModeBase::BeginPlay()
{
//3.打印到控制台和日志文件
UE_LOG(LogProjectName, Log, TEXT("自定义日志分类"));
}
运行结果如下:
//在MyGameModeBase.cpp文件:
void AMyGameModeBase::BeginPlay()
{
int32 A = 10; //整数参数
float B = 3.14; //浮点参数
FString C = TEXT("abc"); //非对象型字符串FString
//传参
UE_LOG(LogTemp, Log, TEXT("格式化日志输出:%d,%f,%s"), A, B, *C);
}
运行结果如下:
以上就是今天要说的内容,本文仅仅简单介绍了虚幻引擎中的日志输出使用。