分类:UE4 C++
标签:数据结构 数据处理 配置文件 log
参考网址:https://wiki.unrealengine.com/index.php?title=String_Conversions:_FString_to_FName,_FString_to_Int32,_Float_to_FString
一些常用的转换工具,不过有可能会丢失信息
参考网址:https://blog.csdn.net/mrma55555/article/details/51880094?locationNum=7
1.调试输出
写入Log文件
UE_LOG(LogTemp,Log,Text("*Your Text"));
UE_LOG(LogTemp,Warning,Text("*Your Text"));
UE_LOG(LogTemp,Error,Text("*Your Text"));
其中,可以通过%f %s 输出特定float和string,如UE_LOG(LogTemp,Warning,Text("%f,%s"),*FloatTypeValue,*StringTypeValue);
向屏幕打印消息
GEngine->AddOnScreenDebugMessage(-1,5.f,FColor::Red,TEXT("*Your Text");
GEngine->AddOnScreenDebugMessage(-1,5.f,FColor::Red,FString::Printf(TEXT("Variable Sample x:%f,y:%f"),*x,*y));
一般会定义成宏快速打印信息
Void AddMessage(text)
{
GEngine->AddOnScreenDebugMessage(-1,5.f,FColor::White,text);
};
2.场景中查找对象
查找Actor的子类:通过类查找Actor,此处以查找静态网格体Actor为例子AStaticMeshActor
for(TActorIterator<AStaticMeshActor>ActorItr(GetWorld());ActorItr;++ActorItr)
{
AStaticMeshActor *Mesh=*ActorItr;
}
查找Uobject的子类:通过类查找Actor或Component,此处以查找所有Actor类为例子
for (TObjectIterator<AActor> Itr; Itr; ++Itr)
{
AActor *Component = *Itr;
}
//Object 迭代查找是找继承自UObject的内容,基本上所有UE4的类都是继承自UObject,所以会包括Actor查找所查找的内容
3.Xml文件的使用
/*示例XML文件Test.xml
<?xml version="1.0" encoding="UTF-8"?>
<Value>
<Gender>Female</Gender>
<Age>22</Age>
</Value>
*/
使用时需要在项目build.cs文件中添加模块"XmlParser"以激活Xml模块功能,使用时应该添加头文件XmlParser.h
//一般情况下 文件加载路径不应该是绝对路径 我们可以使用FPaths::ProjectUserDir()得到项目路径根路径,从而便可以使用相对路径来进行配置文件的加载
①读取操作:
FXmlFile InitVariable(L "X:\\Test.xml");
FXmlNode* root=InitVariable.GetRootNode();
TArray<FXmlNode*> VarArray = root->GetChildrenNodes();
FString tempContent=VarArray[0]->GetContent();
②写入操作:
FXmlFile InitVariable(L"X:\\Test.xml");
FXmlNode* root = InitVariable.GetRootNode();
TArray<FXmlNode*> VarArray = root->GetChildrenNodes();
VarArray[0]->SetContent("Your content");
VarArray[1]->SetContent("Your content");
InitVariable.Save(L"X:\\Test.xml");
InitVariable.Clear();
4.字符类型转换
UnrealString.h里内联函数有说明,各种String的转换
网友评论