// For moderator: I wrote answer in rus because this guy dont speak eng good, hope u`ll send my answer.
То,что тебе нужно называется не плагин, а класс.
Советую почитать для начала уроки по с++.
Для того что тебе нужно - раздел “Указатели”, но лучше читай все.
Также хорошее руководство Programming with C++ | Unreal Engine Documentation .
В интернете полно уроков на русском как видео, так и текстовых, например,на хабре, по c++ в ue4.
Если это сложно, то разберись с blueprint-ами, там не нужно знать программирование,только логика, уроков еще больше чем по с++.
По твоей задаче я создал 2 класса: NewActor и NewFunctionActor, можно создать класс с функцией но в ue4 все объекты на сцене - Actor. Достаточно перенести на сцену NewActor и при запуске в окне Output Log ты увидишь “LogTemp: Warning: Returned value: 5”
NewActor.Cpp
#include "NewActor.h"
// Sets default values
ANewActor::ANewActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void ANewActor::BeginPlay()
{
Super::BeginPlay();
int Value = funcPointer->NewFunction();
UE_LOG(LogTemp, Warning, TEXT("Returned value: %d"), Value);
}
NewActor.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "NewFunctionActor.h"
#include "NewActor.generated.h"
UCLASS()
class FUNCTIONEXAMPLE_API ANewActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ANewActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
UPROPERTY()
ANewFunctionActor* funcPointer;
};
NewFunctionActor.cpp
#include "NewFunctionActor.h"
// Sets default values
ANewFunctionActor::ANewFunctionActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void ANewFunctionActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void ANewFunctionActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
int ANewFunctionActor::NewFunction()
{
return 5;
}
NewFunctionActor.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "NewFunctionActor.generated.h"
UCLASS()
class FUNCTIONEXAMPLE_API ANewFunctionActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ANewFunctionActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
UFUNCTION()
int NewFunction();
};