Unreal XML Json

测试的备注

void AKDXStereController::GetCurrentLevelStereData()
{
      初始化配置
    const FString GameSaveDir = KDXFileHelper::GetGameSaveDir();
    IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
    if (!PlatformFile.DirectoryExists(*GameSaveDir))
    {
        PlatformFile.CreateDirectory(*GameSaveDir);
    }
    FString filePath = GameSaveDir+"/"+UGameplayStatics::GetCurrentLevelName(this)+".json";
    if (PlatformFile.FileExists(*filePath))
    {
        FString result;
        FFileHelper::LoadFileToString(result, *filePath);
        TSharedPtr<FJsonObject> JsonObject;
        TSharedRef< TJsonReader<> > Reader = TJsonReaderFactory<>::Create(result);
        if (FJsonSerializer::Deserialize(Reader, JsonObject)) {
            const double currentLevelEyeOffset = JsonObject->GetNumberField(KEY_EYEOFFSET);
            const double currentLevelFocusPlaneDis= JsonObject->GetNumberField(KEY_FOCUSPLANEDIS);
        }
    }
}

void AKDXStereController::SetCurrentLevelStereData()
{
    const FString& GameSaveDir = KDXFileHelper::GetGameSaveDir();
    const FString filePath = GameSaveDir + "/" + UGameplayStatics::GetCurrentLevelName(this) + ".json";
    IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
    if (!PlatformFile.DirectoryExists(*GameSaveDir))
    {
        PlatformFile.CreateDirectory(*GameSaveDir);
    }
    TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject);
    JsonObject->SetNumberField(KEY_EYEOFFSET,KDX::EyeOffset);
    JsonObject->SetNumberField(KEY_FOCUSPLANEDIS, KDX::FocusPlaneDis);
    FString OutputString;
    TSharedRef< TJsonWriter<> > Writer = TJsonWriterFactory<>::Create(&OutputString);
    FJsonSerializer::Serialize(JsonObject.ToSharedRef(), Writer);
    FFileHelper::SaveStringToFile(*OutputString, *filePath);
}

XML 备注

    //const FString filePath = FPaths::GameSavedDir() + "/test.xml";
    //FXmlFile* _XmlFile = new FXmlFile(filePath);
    //GEngine->AddOnScreenDebugMessage(-1, 1, FColor::Blue,FString::Printf (TEXT("FILE PATH:%s"),*filePath));
    //FXmlNode*_rootNode = _XmlFile->GetRootNode();
    //if (_rootNode!=nullptr)
    //{
    //  _rootNode->AppendChildNode("map3", "");
    //  float NUM = -1020;
    //
    //  //_rootNode->FindChildNode(FString("map2"))->FindChildNode("stere")->SetContent(FString::Printf(TEXT("%f"), NUM));
    //  _rootNode->FindChildNode(FString("map2"))->FindChildNode("stere")->SetContent(FString::SanitizeFloat(NUM));
    //  if (_XmlFile->Save(filePath))
    //  {
    //      GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, TEXT("Succes"));

    //  }
    //  else
    //  {
    //      GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, TEXT("Fail"));
    //  }
    //
    //}
    //else
    //{
    //  GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, TEXT("nullptr"));
    //}

    //_XmlFile = nullptr;
    //delete _XmlFile;


    //if (_XmlFile==nullptr)
    //{
    //  GEngine->AddOnScreenDebugMessage(-1, 2, FColor::Red, TEXT("nullptr"));
    //}
    //else
    //{
    //  /*READ*/
    //  GEngine->AddOnScreenDebugMessage(-1, 2, FColor::Blue, TEXT("exist"));
    //  FXmlNode* _RootNode = _XmlFile->GetRootNode();
    //  const TArray<FXmlNode*> _AssetNodes = _RootNode->GetChildrenNodes();

    //  FXmlNode* _map2Node = _RootNode->FindChildNode(FString("map2"));
    //  if (_map2Node != nullptr) {
    //      GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, _map2Node->FindChildNode(FString("stere"))->GetContent());
    //  }

     //   
        //if (_map2Node==nullptr)
        //{
        //  GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, TEXT("_map2Node nullptr"));
        //}
        //else
        //{
        //  GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, _map2Node->FindChildNode(FString("stere"))->GetContent());
        //}
        //for (FXmlNode* node:_AssetNodes)
        //{
        //  GEngine->AddOnScreenDebugMessage(-1, 10, FColor::Red, node->GetTag());
        //}

        //for (FXmlNode* node : _AssetNodes)
        //{
        //  //得到_AssetNodes下的所有子节点
        //  const TArray<FXmlNode*> _ChildNodes = node->GetChildrenNodes();
        //  FString _AssetContent = node->GetContent();
        //  //打印_AssetNodes内容
        //  GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Red, _AssetContent);
        //  for (FXmlNode* node : _ChildNodes)
        //  {
        //      FString _ChildContent = node->GetContent();
        //      //打印_ChildNodes内容
        //      GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::Blue, _ChildContent);
        //  }
        //}
    //}
    //_XmlFile = nullptr;
    //delete _XmlFile;
FXmlFile* _XmlFile = new FXmlFile(KDXFileHelper::GetStereXMLFilePath());
    if (_XmlFile!=nullptr)
    {
        FXmlNode* _RootNode =_XmlFile->GetRootNode();
        const TArray<FXmlNode*> _stereMaps = _RootNode->GetChildrenNodes();
        for (FXmlNode* node:_stereMaps)
        {
            if (node!=nullptr)
            {
                const FString EyeOffSet = node->FindChildNode("EyeOffset")->GetContent();
                const FString FocusPlaneDis = node->FindChildNode("FocusPlaneDis")->GetContent();

                const float stere = FCString::Atof(*EyeOffSet);
                const float foculsDis = FCString::Atof(*FocusPlaneDis);
                StereParamsMaps.Add(node->GetTag(), StereParams(stere, foculsDis));

                GEngine->AddOnScreenDebugMessage(-1, 5, FColor::Red, node->GetTag());
            }
        }
    }
    _XmlFile = nullptr;
    delete _XmlFile;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值