diff --git a/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs b/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs index 727483988..891c79b43 100644 --- a/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs +++ b/Source/Tools/Flax.Build/Bindings/ClassStructInfo.cs @@ -97,11 +97,22 @@ namespace Flax.Build.Bindings UniqueFunctionNames = new HashSet(); int idx = 1; functionInfo.UniqueName = functionInfo.Name; - while (UniqueFunctionNames.Contains(functionInfo.UniqueName)) + while (!IsUniqueFunctionName(this, functionInfo.UniqueName)) functionInfo.UniqueName = functionInfo.Name + idx++; UniqueFunctionNames.Add(functionInfo.UniqueName); } + private static bool IsUniqueFunctionName(VirtualClassInfo type, string name) + { + while (type != null) + { + while (type.UniqueFunctionNames.Contains(name)) + return false; + type = type.BaseType as VirtualClassInfo; + } + return true; + } + public abstract int GetScriptVTableSize(out int offset); public abstract int GetScriptVTableOffset(VirtualClassInfo classInfo);