A static array based on an enum does not display the enum names in Blueprints if the size of the static array uses an explicit C-style cast with a space between the type being cast to and the enum being used (eg: int32 MyArray[(uint8) ETestEnum::MAX];). If there is no space, then the enum names are displayed in Blueprints as expected.
The explicit cast is required in this case when developing for PS4, which will not allow the implicit cast that would be used otherwise. However, the results of this repro can be seen on Windows.
UENUM(BlueprintType) enum class ETestEnum : uint8 { Foo, Bar, Random, Test, Working, MAX, };
UPROPERTY(EditAnywhere) int32 MyArray[(uint8) ETestEnum::MAX];
RESULT:
In the Details panel, the array elements are shown with the enum numbers instead of the enum names.
EXPECTED:
The Details panel shows the array elements with their respective enum names.
WORKAROUND:
Make sure there is no space between the type being cast to and the enum being used with the array (eg. int32 MyArray[(uint8)ETestEnum::MAX];).
How does TextureRenderTarget2D get TArray<uint8> type data?
Why does the REMOVE method of map container remove elements have memory leaks?
How to delete some elements correctly when deleting an array loop?
How do I set a material as a post-processing material?
What is the difference between Camera and CineCamera?
UMG RichText not appear image when packaged
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
How does TArray loop correctly remove elements in blueprints?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-67858 in the post.
1 |
Component | UE - Foundation - Core |
---|---|
Affects Versions | 4.19.2, 4.22, 4.20.3 |
Created | Dec 21, 2018 |
---|---|
Resolved | Aug 18, 2021 |
Updated | Aug 18, 2021 |