If you want it exposed as a UPROPERTY, then no it’s not supported (and it probably won’t ever be).
However there’s not really much need for it - since with some fairly straightforward accessor operations you can treat a 1D array as a multidimensional array anyway, and it’s considerably faster than using multi-dimensional arrays. Here’s an example from some code I used quite often.
/* Get the Index in a 1D array when treating it as 2D */
FORCEINLINE static int32 Get2DArray_Index(const int32 Column, const int32 Row, const int32 NumRows)
{
return Row + Column * NumRows;
}
/* Get the Column and Row from the Index of a 1D Array treated as 2D.*/
FORCEINLINE static void Get2DArray_ColumnAndRow(int32& OutColumn, int32& OutRow, const int32 NumRows, const int32 InIndex)
{
#if !(UE_BUILD_SHIPPING)
checkfSlow(NumRows > 0, TEXT("UST_SGStatics::Get2DArray_ColumnAndRow() - Divide By Zero!"));
checkfSlow(InIndex >= 0, TEXT("UST_SGStatics::Get2DArray_ColumnAndRow() - Invalid Index!"));
#endif
OutColumn = InIndex % NumRows;
OutRow = InIndex / NumRows;
}
Note that Arrays also have more complex and often costly replication, since the number of elements in the array is also sent, even if the array is empty.