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