But it keeps crashing and I can’t find any code example for this.
void ASampleGameActor::BeginPlay()
{
Super::BeginPlay();
LuaState = NewObject<ULuaState>(this, ULuaState::StaticClass(), FName("SampleLuaState"));
if (LuaState)
{
// Test Lua execution
FString TestScript = TEXT("print('LuaMachine initialized in SampleGameActor!')");
RunLuaScript(TestScript);
}
}
void ASampleGameActor::RunLuaScript(const FString& LuaCode)
{
if (LuaState)
{
FLuaValue Result = LuaState->RunString(LuaCode, TEXT("SampleGameTest"));
if (Result.Type == ELuaValueType::Nil)
{
// No return value (expected for print), assume success unless Lua logged an error
UE_LOG(LogTemp, Log, TEXT("Lua script executed"));
}
else if (Result.Type == ELuaValueType::String && Result.ToString().Contains("error"))
{
UE_LOG(LogTemp, Error, TEXT("Lua script failed: %s"), *Result.ToString());
}
}
}
Does this code make sense at all? Thanks