美文网首页
LOG&Itr&XML&String Conversions

LOG&Itr&XML&String Conversions

作者: Lif68 | 来源:发表于2019-10-26 11:17 被阅读0次

    分类: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的转换

    相关文章

      网友评论

          本文标题:LOG&Itr&XML&String Conversions

          本文链接:https://www.haomeiwen.com/subject/pvrnpctx.html