UE4

xiaoxiao2021-02-27  374

Log日志系统

先打开虚幻编辑器,新建一个c++基础项目

1.UE_LOG宏

基本输出使用: UE_LOG(LogTemp,Log,TEXT("xxxx")); 参数1:日志类型 参数2:级别,Log,Display,Warning,Error 参数3:具体的内荣
例子:
UE_LOG(LogTemp,Warning,TEXT("int 输出%d"),123); UE_LOG(LogTemp,Warning,TEXT("字符输出%s"),TEXT("gogo")); UE_LOG(LogTemp,Warning,TEXT("浮点输出%f"),3.14); FVector vec(1,2,3); UE_LOG(LogTemp,Warning,TEXT("向量输出%s"),*vec.ToString);

控制台输出

在运行的时候,并且鼠标浸入运行的界面,然后按~可以调出控制台(注意一下,二下) 格式: GetWorld()->GetFirstPlayerController()->ClientMessage(TEXT("xxxx"));

向屏幕输出输出

GEngine->AddOnScreenDebugMessage(-1,10.0f,FColor::Red,Text("xxx")); 参数1:唯一的Key,一般用-1代表不会覆盖信息,只是向屏幕输出新的信息。 参数2:显示的时间

自定义LOG类别

.h 文件中DECLARE_LOG_CATEGORY_EXTERN(LogCoolGameMode,Log,All); .cpp DEFINE_LOG_CATEGORY(LogCoolGameMode); .cpp 在任意地方使用UE_LOG("出入自己定义的日志的名字",Log,TEXT(""));

控制LOG类型显示

Log LogName off // 关闭 Log LogName Log // 打开

MessageLog 窗口输出

MessageLog 窗口使用Ftex.要使用Ftext.要使用Ftext 必须先定义一个Namespace,使用 #define LOCTEXT_NAMESPACE "XXXX" 在工程项目头文件中自定义一个Log模块名称 extern FName LoggerName; 定义一个Log模块的名称 在GameMode.cpp中实现定义 FName LoggerName("XXXX");

注册自定义Log 模块

在LogGameMode 定义一个初始化方法完成注册 void XXXX::InitMessageLogType(FName loggerName) { FMessageLogModule&MessageLogModule= FModuleManager::LoadModuleChecked<FMessageLogModule>("MessageLog"); FMessageLogInitializationOptions InitOptions; InitOptions.bShowPages=true; InitOptions.bShowFilters=true; FText LogListingName=FTEXT("CoolGame's Log Listing"); MessageLogModule.RegisterLogListing(loggerName,LogListingName,InitOptions); }

向MessageLog输出

构造一个FMessageLog(LoggerName),调用输出,方法如下: FMessageLog(LoggerName).Info(FTEXT("提示信息)); FMessageLog(LoggerName).Warning(FTEXT("警告信息")); FMessageLog(LoggerName).Error(FTEXT("严重错误"));
转载请注明原文地址: https://www.6miu.com/read-16638.html

最新回复(0)