To answer your comment, the following function would do that conversion using assembly :
// Since UD60x18 is uint256 their underlying size and representation are the same
// Just make a uint256[] reference point to your UD60x18[] memory variable
function unwrapArray(UD60x18[] memory foo) internal pure returns (uint256[] memory bar) {
assembly {
bar := foo
}
}
Thus, this would return a uint256[]
with values [1, 2] :
function test() public pure returns (uint256[] memory) {
UD60x18[] memory foo = new UD60x18[](2);
foo[0] = UD60x18.wrap(1);
foo[1] = UD60x18.wrap(2);
return unwrapArray(foo); // [1, 2]
}
It does create a new variable though... As far as I know of, there is no implicit or explicit conversion allowed for used defined value types currently.