※この記事で使用しているUnrealのVersionは04.26.0です。
FMathというクラスに「Eval( FString Str, float& OutValue )」という関数があります。
この関数は、文字列の式を計算してfloatで返してくれるようなものです。
↓FunctionLibraryに実装してみた。
MyBlueprintFunctionLibrary.h
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "MyBlueprintFunctionLibrary.generated.h"
/**
*
*/
UCLASS()
class MYPROJECT11_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintPure)
static float CalcStringFormula(FString InFormulaString);
};
MyBlueprintFunctionLibrary.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "MyBlueprintFunctionLibrary.h"
float UMyBlueprintFunctionLibrary::CalcStringFormula(FString InFormulaString)
{
float ReturnValue;
FMath::Eval(InFormulaString, ReturnValue);
return ReturnValue;
}
これをビルドして、適当に指揮を入れてみた結果↓
1+2+3+4
=10.0
3+4*2-5
=6.0
以上