UE_LOG输出FString的例子
时间: 2024-03-23 19:36:36 浏览: 120
下面是一个输出FString的例子:
```cpp
FString MyString = "Hello, world!";
UE_LOG(LogTemp, Warning, TEXT("My string is: %s"), *MyString);
```
这个例子中,我们定义了一个FString类型的变量MyString,并赋值为"Hello, world!"。然后使用UE_LOG宏输出这个字符串,其中第一个参数LogTemp表示输出到控制台或者日志文件中的哪个类别,第二个参数Warning表示这条日志的级别,第三个参数"My string is: %s"是输出的文本格式,其中%s表示要输出的FString类型的变量,使用*MyString转换为C风格的字符串。当程序运行时,这条日志信息将会被输出到控制台或者日志文件中。
相关问题
UE_LOG用法
UE_LOG是UE4引擎提供的一个宏定义,用于在代码中输出日志信息。其基本语法如下:
```cpp
UE_LOG(Category, Verbosity, Format, ...)
```
其中,Category参数表示日志类别,Verbosity参数表示输出级别,Format参数表示输出格式,...表示可变参数列表。
一般情况下,我们会将Category参数设置为自定义的字符串,用于标识不同模块或功能的日志信息;Verbosity参数可以设置为不同的枚举值,用于控制输出级别,常见的枚举值包括:
- Log:普通日志信息
- Warning:警告信息
- Error:错误信息
Format参数使用类似于printf函数的语法,用于指定输出格式。例如,可以使用%s表示字符串,%d表示整数等。
举个例子,如果我们想要在代码中输出一个字符串变量和一个整数变量的值,可以这样写:
```cpp
FString MyString = "Hello";
int32 MyInt = 123;
UE_LOG(LogTemp, Log, TEXT("%s %d"), *MyString, MyInt);
```
这段代码将输出一个类似于“LogTemp: Hello 123”的日志信息,其中LogTemp是自定义的日志类别,Log是输出级别,%s和%d分别表示字符串和整数类型的变量。
需要注意的是,UE_LOG输出的日志信息默认只在开发环境中显示,在发布版本中会被自动省略。如果需要在发布版本中输出日志信息,可以在项目设置中将“Generate Debug Info”选项设置为“Development”或“DebugGame”。
UE4 C++ 结构体数组
在UE4中,我们可以使用C++结构体数组来存储一组相关的数据。下面是一个简单的示例,展示如何定义和使用结构体数组:
首先,我们定义一个包含两个字段的结构体:
```c++
USTRUCT(BlueprintType)
struct FMyStruct
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")
int32 id;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")
FString name;
};
```
然后,我们可以定义一个结构体数组来存储多个 FMyStruct 对象:
```c++
USTRUCT(BlueprintType)
struct FMyStructArray
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStructArray")
TArray<FMyStruct> myStructs;
};
```
在上面的例子中,我们定义了一个名为 FMyStructArray 的结构体,它包含一个 TArray 类型的 myStructs 字段,用于存储 FMyStruct 对象。
我们可以在代码中使用结构体数组,如下所示:
```c++
FMyStructArray myArray;
// 初始化结构体数组
for (int i = 0; i < 10; i++)
{
FMyStruct myStruct;
myStruct.id = i;
myStruct.name = FString::Printf(TEXT("Item %d"), i+1);
myArray.myStructs.Add(myStruct);
}
// 遍历结构体数组
for (int i = 0; i < myArray.myStructs.Num(); i++)
{
FMyStruct myStruct = myArray.myStructs[i];
UE_LOG(LogTemp, Warning, TEXT("Item %d: id=%d, name=%s"), i+1, myStruct.id, *myStruct.name);
}
```
在上面的代码中,我们首先创建了一个 FMyStructArray 类型的 myArray 对象,然后使用一个 for 循环来初始化它。最后,我们再次使用 for 循环遍历结构体数组,并打印每个元素的 id 和 name 字段。
注意,如果我们定义了一个 USTRUCT,那么我们需要使用 GENERATED_BODY() 宏来生成相关的代码,否则编译会出错。同时,我们还需要使用 UPROPERTY 宏来指定结构体数组的元素可以在蓝图中进行编辑和读取。
阅读全文