zoukankan      html  css  js  c++  java
  • ue4 log

    在Unreal Engine 4中,打Log很方便,可以使用宏:

    1. UE_LOG(LogTemp, Warning, TEXT("Your message"));  

    但是使用之前需要先定义Log Category,Category会在Log中体现出来,以便在茫茫Log中更容易区分其作用或所属模块。

    如果想定义只在一个CPP文件中使用的Category,不希望被其他类使用,可以定义一个Static的Category:

    1. DEFINE_LOG_CATEGORY_STATIC(CategoryName,Log,All);  

    如果想定义一个‘Public’的Category,并且在全局生效,不管是static函数还是其他类都可以使用,就需要在头文件中声明一个Category,并在CPP中定义,每个用到的CPP文件都需要include该头文件:

    1. // in A.h  
    2. DECLARE_LOG_CATEGORY_EXTERN(CategoryName, Log, All) // 声明一个Category为extern,避免多个文件使用此头文件时重复声明  
    3.    
    4. // in A.cpp  
    5. #include "A.h"  
    6. DEFINE_LOG_CATEGORY(CategoryName) // 定义该Category,全局仅需一份  
    7.    
    8. // in B.cpp  
    9. #include "A.h" // 由于之前声明为extern,使用者引入头文件即可使用在A.cpp中的定义  

    如果想给某个定义一个专属的Category,可以使用:

    1. // in A.h  
    2. classA  
    3. {  
    4.     DECLARE_LOG_CATEGORY_CLASS(CategoryName,Log,All);  
    5. };  
    6.    
    7. // in A.cpp  
    8. DEFINE_LOG_CATEGORY_CLASS(A,CategoryName);  

    定义好Log Category之后就可以使用UE_LOG了,除了最前面例子中的用法,UE_LOG的用法和C中的printf类似,支持字符串Format,例如:

    1. UE_LOG(CategoryName,Warning,TEXT("MyCharacter's Health is %d"), MyCharacter->Health );  
    2. UE_LOG(CategoryName,Warning,TEXT("MyCharacter's Health is %f"), MyCharacter->Health );  
    3. UE_LOG(CategoryName,Warning,TEXT("MyCharacter's Name is %s"), *MyCharacter->GetName() ); 
  • 相关阅读:
    Python常用第三方库总结
    Python爬虫技术--入门篇--爬虫介绍
    X sql解惑 25 里程碑问题 答案
    X sql解惑 34 咨询顾问收入问题
    从小变大的照片
    获取属性的顺序
    for...in
    判断元素是否存在
    自由的元素名称
    ES6语法糖-简洁属性表示
  • 原文地址:https://www.cnblogs.com/nafio/p/9137071.html
Copyright © 2011-2022 走看看