diff --git a/Assets/UdonSharp/Editor/UdonSharpResolverContext.cs b/Assets/UdonSharp/Editor/UdonSharpResolverContext.cs index 8f5eea43..121931f1 100644 --- a/Assets/UdonSharp/Editor/UdonSharpResolverContext.cs +++ b/Assets/UdonSharp/Editor/UdonSharpResolverContext.cs @@ -272,6 +272,20 @@ public string GetUdonTypeName(System.Type externType) { string externTypeName = externType.GetNameWithoutGenericArity(); string typeNamespace = externType.Namespace; + if (externType.DeclaringType != null) + { + string declaringTypeNamespace = ""; + + System.Type declaringType = externType.DeclaringType; + + while (declaringType != null) + { + declaringTypeNamespace = $"{externType.DeclaringType.Name}.{declaringTypeNamespace}"; + declaringType = declaringType.DeclaringType; + } + + typeNamespace += $".{declaringTypeNamespace}"; + } if (externTypeName == "T" || externTypeName == "T[]") typeNamespace = "";