【UE-C++开发】③关于打印输出信息;变量类型;TArray;TMap

目录

 

一、打印输出日记/信息

1、输出日记/信息到编辑器控制台--UE_LOG

(1) 查看log:

(2) 使用方法

(3) 输出结果: 

2、 输出日记/消息到屏幕上--GEngine->AddOnScreenDebugMessage

(1) 使用方法

(2) 输出结果: 

二、变量类型

三、Fstring、FName、FText的相互转换

四、TArray

五 、TMap


一、打印输出日记/信息

1、输出日记/信息到编辑器控制台--UE_LOG

(1) 查看log:

编辑器模式:打开Log窗口(Window->Developer Tools->Output Log)

(2) 使用方法

	UE_LOG(LogTemp, Error, TEXT("my name is okk"));
	UE_LOG(LogTemp, Warning, TEXT("my name is okk"));
	UE_LOG(LogTemp, Display, TEXT("my name is okk"));

第一个参数LogTemp:Log的分类。

1.LogTemp: 用于临时调试信息或快速测试。
2.LogGamePlay: 用于游戏运行时的事件和状态更新。
3.LogBlueprintUserMessages: 用于从蓝图中输出的用户消息。
4.LogOnline: 用于在线游戏模块相关的日志记录。
5.LogNavigation: 用于导航系统相关的日志记录。

第二个参数为类型:有Log、Warning、Error三种类型。Log为灰色,Warning为黄色,Error为红色。

常用的符号:

  1. %s 字符串(FString)
  2. %d 整型数据(int32)
  3. %f 浮点型(float)
//基础数据类型的输出打印
int32 MyInt = 10;
float MyFloat = 5.f;
bool MyBool = true;
char MyChar = 'A';
FString MyString1 = TEXT("MyString1");
FVector MyVector = FVector(0, 0, 0);
UE_LOG(LogTemp, Warning, TEXT("%d"), MyInt);
UE_LOG(LogTemp, Warning, TEXT("%f"), MyFloat);
UE_LOG(LogTemp, Warning, TEXT("%d"), MyBool);
UE_LOG(LogTemp, Warning, TEXT("%c"), MyChar);
UE_LOG(LogTemp, Warning, TEXT("%s"), *MyString1);
UE_LOG(LogTemp, Warning, TEXT("%s"), *MyVector.ToString());

(3) 输出结果: 

2、 输出日记/消息到屏幕上--GEngine->AddOnScreenDebugMessage

(1) 使用方法

	//在UE的屏幕中中打印,相当于蓝图中的printf函数
	GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Blue, TEXT("my name is ok"));
void UEngine::AddOnScreenDebugMessage(int32 Key, float TimeToDisplay, FColor DisplayColor, const FString& DebugMessage, bool bNewerOnTop, const FVector2D& TextScale)
{
	AddOnScreenDebugMessage((uint64)Key, TimeToDisplay, DisplayColor, DebugMessage, bNewerOnTop, TextScale);
}

第一个参数 -1 表示这个消息的键。使用 -1 会使消息显示在屏幕上,但不会替换任何现有消息。如果你使用特定的键(例如 1),那么使用该键的任何后续消息都会替换先前的消息。
第二个参数 5.f 是消息在屏幕上的持续时间(以秒为单位)。
第三个参数 FColor::Blue 是消息的颜色。
最后一个参数是要显示的实际文本消息。

(2) 输出结果: 

二、变量类型

//布尔类型变量声明
bool varBool;
//整型32位变量声明
int32 varInt32;
//整型64为变量声明
int64 varInt64;
//浮点16位变量声明
FFloat16 varFloat16;
//浮点32位变量声明
FFloat32 varFloat32;
//浮点双精度变量声明
double varDouble;
//字节类型变量声明
BYTE varByte;
//字符串变量声明
FString varString;
//命名变量声明
FName varName;
//文本变量声明
FText varText;
//向量类型变量声明
FVector varVector;
//旋转类型变量声明
FRotator varRotator;
//变换类型变量声明
FTransform varTransform;
void AMyGameMode::dataType()
{
	int MyInt = 0;
	float MyFloat = 5.0f;
	bool MyBool = true;
	FString MyFString =TEXT("A");
	char MyChar = 'a';
	FVector MyVector = FVector(0, 0, 0);
	UE_LOG(LogTemp, Warning, TEXT("%d"), MyInt);
	UE_LOG(LogTemp, Warning, TEXT("%f"), MyFloat);
	UE_LOG(LogTemp, Warning, TEXT("%d"), MyBool);
	UE_LOG(LogTemp, Warning, TEXT("%c"), MyChar);
	UE_LOG(LogTemp, Warning, TEXT("%s"), *MyFString);
	UE_LOG(LogTemp, Warning, TEXT("%s"), *MyVector.ToString());

}

运行结果: 

 

三、Fstring、FName、FText的相互转换

	FString MyStr = "i am string";
	//Fstring转换为FName
	FName MyName = FName(*MyStr);
	//Fstring 转换为FText
	FText MyText = FText::FromString(MyStr);

	//FName转为FString
	MyStr = MyName.ToString();
	//Fname转为FText
	MyText = FText::FromName(MyName);
	//Ftext转为Fstring
	FString strFromText = MyText.ToString();

四、TArray

    TArray<int> MyArray;	

    //增
	MyArray.Add(0);
	MyArray.Add(1);
	MyArray.Add(2);
	MyArray.Add(2);
	MyArray.AddUnique(3);//将数组中不存在的元素添加到数组中  0 1 2 2 3
	MyArray.AddUnique(2);
	
	//删
	MyArray.Remove(2);//移除所有数组中等值的元素  0 1 3
	MyArray.RemoveAt(0);//移除数组中索引值为0的元素 1 3
	MyArray.RemoveSingle(1);//移除数组中首个匹配的元素 3
	MyArray.Empty();//清空元素
	MyArray.Reset();//重置我们所有的元素变为0
	//改
	MyArray.Insert(10, 0);//在数组中第0个插入一个元素10
	int &temp=MyArray[0];
	temp = 50;
	//查
	MyArray.Contains(10);//查找数组中是否包含了某个元素
	MyArray.Find(10);//正向查找数组中匹配的第一个
	MyArray.FindLast(10);//反向

五 、TMap

TMap<int, FString> MyMap;
TMap<int, int> MyMap1;
//增
MyMap.Add(0, "a");
MyMap.Emplace(1, "b");
MyMap1.Emplace(0, 0);//用法和add一样,都是添加元素
MyMap1.Emplace(1, 2);
//删
MyMap.Remove(0);//移除key值为0的元素
MyMap.Empty();//移除所有的元素
//改
MyMap1.Emplace(1, 10);
//查
MyMap.Contains(1);//查找匹配的KEY值,返回布尔值
FString *tempValue=MyMap.Find(0);//通过key找Value,返回的是指针
const int* tempKey = MyMap.FindKey("a");//通过value找Key,返回的也是指针
//分别获取keys和values
TArray<int> TestKeys;
TArray<FString> TestValues;
MyMap.GenerateKeyArray(TestKeys);
MyMap.GenerateValueArray(TestValues);

使用迭代器遍历map 

//写法1:遍历map,将所有key值打印出来	
    for (auto ite=MyMap.begin();ite!=MyMap.end();++ite) 
	{
		GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red,                 FString::Printf(TEXT("%d"),ite.Key()));
	}

//写法2:遍历map,将所有key值和value打印出来
	for (auto& mymap:MyMap1) 
	{
		GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Blue, FString::Printf(TEXT("Key: %d""Value: %d"),mymap.Key,mymap.Value));
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值