※この記事で使用している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

以上

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です