Optimizing WB_GameWidget

This commit is contained in:
martinluckyrobots
2025-04-10 13:30:13 +08:00
parent 55fabb31e8
commit d188cb846e
15 changed files with 99 additions and 39 deletions

View File

@ -177,47 +177,12 @@ void UMainScreenUserWidget::UpdateSelectQuality()
BPUpdateSelectQuality();
}
FParsedData UMainScreenUserWidget::DoJsonParse(const FString& JsonString)
{
FParsedData ParsedData;
auto VaRestSubsystem = CastChecked<UVaRestSubsystem>(USubsystemBlueprintLibrary::GetEngineSubsystem(UVaRestSubsystem::StaticClass()), ECastCheckedType::NullChecked);
if (!VaRestSubsystem)
{
return ParsedData;
}
UVaRestJsonObject* VaRestJsonObject = VaRestSubsystem->ConstructVaRestJsonObject();
if (!VaRestJsonObject)
{
return ParsedData;
}
if (VaRestJsonObject->DecodeJson(JsonString, true))
{
UVaRestJsonObject* TempJsonObject = VaRestJsonObject->GetObjectField("startup_instructions");
if (TempJsonObject)
{
ParsedData.LevelName = TempJsonObject->GetStringField("level");
ParsedData.CharacterName = TempJsonObject->GetStringField("character");
ParsedData.Quality = TempJsonObject->GetStringField("quality");
}
}
else
{
UE_LOG(LogTemp, Error, TEXT("Parse Problem"));
}
return ParsedData;
}
void UMainScreenUserWidget::OnMessageDispatchedHandler(const FString& Message)
{
ULuckyRobotsGameInstance* GameInstance = Cast<ULuckyRobotsGameInstance>(GetGameInstance());
if (GameInstance)
{
FParsedData ParsedData = DoJsonParse(Message);
FParsedData ParsedData = GameInstance->DoJsonParse(Message);
if (ParsedData.CharacterName == "DRONE")
{
GameInstance->CurrentSelectRobot = ERobotsName::LuckyDrone;