Skip to main content
null 💻 notes

Passing an enum as a function parameter

I'm using Unreal Engine 4.20.2. Here's how I am successfully passing an enum to a function for use in a TArray.

In my Item.h file:

UENUM(BlueprintType)	//"BlueprintType" is essential to include
namespace EInventoryItem {
	enum Item {
		Nothing		UMETA(DisplayName = "Nothing"),
		Battery		UMETA(DisplayName = "Battery"),
		Thing	 	UMETA(DisplayName = "Thing"),
		AnotherThing	UMETA(DisplayName = "Another Thing"),
		RedBadge	UMETA(DisplayName = "Red Badge"),
		BlueBadge	UMETA(DisplayName = "Blue Badge")
	};
}

In my Character.h file:

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Inventory)
TArray<TEnumAsByte<EInventoryItem::Item>> InventoryItems;

UFUNCTION(BlueprintCallable, Category = Inventory)
bool AddItemToInventory(TEnumAsByte<EInventoryItem::Item> Item);

Using the namespace-style enums works well for me. I was having a ton of issues trying to pass a TEnumAsByte<EInventoryItem> to a function as a parameter, and converting everything to what you see above worked well for me.