using a UENUM to safely manage and check an object's movement direction

All I meant by wrapping was to try replacing EThing with TEnumAsByte< EThing >, but as your link suggests this should no longer be needed. Although I have come across cases where a UPROPERTY is treated differently from a UFUNCTION parameter.

Did you try renaming your type as I proposed and then altering the function signature to be:



UFUNCTION()  
EMoveDirection CalcDirectionFromTickVector( const FVector MoveVectorThisTick)