2024/04/24_UE5.4_プラグインパッケージ化時にEnum関連の複数のエラー

ログ

C:\Plugin\UMGToSlateLoadingScreen\HostProject\Plugins\UMGToSlateLoadingScreen\Source\UMGToSlateLoadingScreen\Public\FadeInOutInterpType.h(8): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

C:\Plugin\UMGToSlateLoadingScreen\HostProject\Plugins\UMGToSlateLoadingScreen\Source\UMGToSlateLoadingScreen\Public\FadeInOutInterpType.h(8): error C2065: 'BlueprintType': 定義されていない識別子です。

C:\Plugin\UMGToSlateLoadingScreen\HostProject\Plugins\UMGToSlateLoadingScreen\Source\UMGToSlateLoadingScreen\Public\FadeInOutInterpType.h(9): error C2059: 構文エラー: 'enum [tag]'

C:\Plugin\UMGToSlateLoadingScreen\HostProject\Plugins\UMGToSlateLoadingScreen\Source\UMGToSlateLoadingScreen\Public\FadeInOutInterpType.h(9): error C2059: 構文エラー: '関数形式のキャスト'

 Compile [x64] FadeInOutInterpType.cpp: Exited with error code 2 . The build will fail.


FadeInOutInterpType.h

// Copyright 2024, roy00227, All rights reserved

#pragma once

#include "CoreMinimal.h"

UENUM(BlueprintType)

enum class EFadeInOutInterpType : uint8

{

    Linear UMETA(DisplayName = "Linear"),

    SinIn UMETA(DisplayName = "SinIn"),

    SinOut UMETA(DisplayName = "SinOut"),

    ExpoIn UMETA(DisplayName = "ExpoIn"),

    ExpoOut UMETA(DisplayName = "ExpoOut"),

    CircularIn UMETA(DisplayName = "CircularIn"),

    CircularOut UMETA(DisplayName = "CircularOut")

};


解決

#include "~.generated.h"を追加

#pragma once

#include "CoreMinimal.h"

#include "FadeInOutInterpType.generated.h"


参考

https://forums.unrealengine.com/t/enum-in-separate-files/151772