Summary The UdonSharp compiler compiles T[] declarations inside generic methods to an incorrect array type instead of the array type corresponding to the type argument. This issue occurs when T[] is used only within the method body and does not appear in the method's return type or parameters. Steps to Reproduce Create a UdonSharp script using the code below. Compile the script and inspect the generated Udon assembly, focusing on the code corresponding to each generic method invocation. Expected Result The array type should correspond to the specified type argument: GenericMethod<int>() : SystemInt32Array GenericMethod<float>() : SystemSingleArray GenericMethod<string>() : SystemStringArray Actual Result SystemInt32Array is used for all invocations. The corresponding array types for float[] and string[] are not generated. Reproduction Code using UdonSharp; public class GenericsArrayTypeBug : UdonSharpBehaviour { void Start() { GenericMethod<int>(); GenericMethod<float>(); GenericMethod<string>(); } public static void GenericMethod<T>() { T[] array = new T[0]; } } Generated Udon Assembly With SDK 3.10.5, the generated assembly uses SystemInt32Array for all three invocations, as shown in the following variable declarations: __lcl_array_SystemInt32Array_0: %SystemInt32Array, null __lcl_array_SystemInt32Array_1: %SystemInt32Array, null __lcl_array_SystemInt32Array_2: %SystemInt32Array, null The array constructor calls also use SystemInt32Array in all three cases: EXTERN, "SystemInt32Array.__ctor__SystemInt32__SystemInt32Array" Therefore, even when float or string is specified as the type argument, the array is compiled as the equivalent of int[] . Additional Observation When T[] is included in the method's return type or parameters, this issue does not occur, and the array type is generated correctly. Environment VRChat Worlds SDK: 3.10.5 Unity: 2022.3.22f1