If I put a comment block before the UINTERFACE() the header tool cannot find the UINTERFACE() macro
/**
* @remark Declaring an interface class is similar to declaring a normal Unreal class,
* but with two main differences.
* First, an interface class uses the UINTERFACE macro instead of the UCLASS macro,
* and inherits from UInterface instead of UObject directly.
* Second, the UINTERFACE class is not the actual interface;
* it is an empty class that exists only for visibility to Unreal Engine's reflection system.
* The actual interface that will be inherited by other classes must have the same class name,
* but with the initial "U" changed to an "I"
*
*/
UINTERFACE(Blueprintable)
class UKGameInterface : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
/**
* @brief IKGameInterface class is the interface for game events.
*
*/
class KSGM_API IKGameInterface
{
GENERATED_IINTERFACE_BODY()
/**
* @brief called when the match state has changed.
* @param InMatchState The State of the match.
* @remark Provide a body named [FunctionName]_Implementation instead of [FunctionName]
*/
UFUNCTION(BlueprintNativeEvent, Category = "Game")
void MatchStateHasChanged(FName InMatchState);
};
I have to remove the comment block placed before the UINTERFACE() macro.