UTextureRenderTarget2D*をメンバ変数に持つ構造体のコンストラクタ内での処理

purin52002 こんにちは、

「私 C++(&日本語)はいまいちです」と言うのを、放棄しておかせていただきます。
よって、この続きをそのままで鵜吞みにしないでくださいませ。

調べたところ、コピーコンストラクタはUE4 のU Class には使えないみたいです(2015/09/09 の時点で)。 このスレッドをご参照

解決方法に関して、 
以下の例は上記のスレッドから抜粋しました:

新オブジェクトの宣言:

T* NewObject<T>(UObject * outer, UClass * type, FName name, UObject const* Template)

使用法:

UMyObject * newObject = NewObject<UMyObject>(someOtherObject, MyObject::StaticClass(), NAME_None, templateObject);

(someOtherObject = TextureRenderTarget2D)かな?

こんにちは

UTextureRenderTarget2D*をメンバ変数に持つ構造体を作りたいと考えています。
アクタにシーンキャプチャを取り付け、アクタの見ている画像から構造体を作りたいのですが、
コンストラクタ内での処理をどうすればよいかわかりません。

コンストラクタの引数は const UTextureRenderTarget2D* としているためポインタをそのままコピーすることはもちろん、実体をコピーしようとするも(コピーコンストラクタのせい?)コピーできない状況です。

どのようにすればメンバ変数に値を設定できるでしょうか?

返信が遅れてしまい申し訳ありません
つまりMyStructという構造体のコンストラクタ内でNewObjectを呼び出して、その結果をメンバ変数に代入すればよいということでしょか?

構造体の定義を下記のような感じにしてみてはいかがでしょうか?

// 構造体宣言
USTRUCT()
struct PROJECTNAME_API FExampleStruct
{
    GENERATED_USTRUCT_BODY()

    UPROPERTY()
    UTextureRenderTarget2D* RenderTarget;

    FExampleStruct()
        : RenderTarget(nullptr)
    {}

    FExampleStruct(UTextureRenderTarget2D* RenderTarget)
    {
        ->RenderTarget = RenderTarget;
    }
};

ExampleActor.h

UCLASS()
class PROJECTNAME_API AExampleActor : public AActor
{
    GENERATED_BODY()

public:
    AExampleActor();
    virtual void BeginPlay() override;

protected:
    UPROPERTY()
    FExampleStruct ExampleStruct;

    UPROPERTY()
    USceneCaptureComponent2D* SceneCaptureComponent;
};

ExampleActor.cpp

void AExampleActor::BeginPlay()
{
    if (SceneCaptureComponent == nullptr)
        return;
    if (SceneCaptureComponent->TextureTarget == nullptr)
        return;
    ExampleStruct = FExampleStruct(SceneCaptureComponent->TextureTarget);
}