不混淆DOTS相关类型

before-split
walon 2025-05-27 20:20:49 +08:00
parent 8f0a5bc0f2
commit 77c6635eda
2 changed files with 35 additions and 21 deletions

View File

@ -144,6 +144,10 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{ {
return true; return true;
} }
if (MetaUtil.HasBurstCompileAttribute(typeDef))
{
return true;
}
if (typeDef.DeclaringType != null) if (typeDef.DeclaringType != null)
{ {
return IsUnitySourceGeneratedAssemblyType(typeDef.DeclaringType); return IsUnitySourceGeneratedAssemblyType(typeDef.DeclaringType);
@ -151,13 +155,34 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
return false; return false;
} }
private bool DoesDeclaringTypeDisableAllMemberRenaming(TypeDef typeDef)
{
if (typeDef.IsEnum && MetaUtil.HasBlackboardEnumAttribute(typeDef))
{
return true;
}
if (IsUnitySourceGeneratedAssemblyType(typeDef))
{
return true;
}
if (MetaUtil.IsInheritFromDOTSTypes(typeDef))
{
return true;
}
if (IsUnitySourceGeneratedAssemblyType(typeDef))
{
return true;
}
return false;
}
public override bool NeedRename(TypeDef typeDef) public override bool NeedRename(TypeDef typeDef)
{ {
if (MetaUtil.IsScriptType(typeDef)) if (MetaUtil.IsScriptType(typeDef))
{ {
return false; return false;
} }
if (MetaUtil.IsInheritFromDOTSTypes(typeDef)) if (DoesDeclaringTypeDisableAllMemberRenaming(typeDef))
{ {
return false; return false;
} }
@ -165,14 +190,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{ {
return false; return false;
} }
if (typeDef.IsEnum && MetaUtil.HasBlackboardEnumAttribute(typeDef))
{
return false;
}
if (IsUnitySourceGeneratedAssemblyType(typeDef))
{
return false;
}
return true; return true;
} }
@ -183,7 +200,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{ {
return false; return false;
} }
if (MetaUtil.IsInheritFromDOTSTypes(typeDef)) if (DoesDeclaringTypeDisableAllMemberRenaming(typeDef))
{ {
return false; return false;
} }
@ -191,9 +208,9 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{ {
return false; return false;
} }
if (IsUnitySourceGeneratedAssemblyType(typeDef)) if (MetaUtil.HasBurstCompileAttribute(methodDef))
{ {
return false; return true;
} }
return true; return true;
} }
@ -205,15 +222,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{ {
return !MetaUtil.IsSerializableField(fieldDef); return !MetaUtil.IsSerializableField(fieldDef);
} }
if (MetaUtil.IsInheritFromDOTSTypes(typeDef)) if (DoesDeclaringTypeDisableAllMemberRenaming(typeDef))
{
return false;
}
if (typeDef.IsEnum && MetaUtil.HasBlackboardEnumAttribute(typeDef))
{
return false;
}
if (IsUnitySourceGeneratedAssemblyType(typeDef))
{ {
return false; return false;
} }

View File

@ -984,5 +984,10 @@ namespace Obfuz.Utils
{ {
return typeDef.CustomAttributes.Find("Unity.Behavior.BlackboardEnumAttribute") != null; return typeDef.CustomAttributes.Find("Unity.Behavior.BlackboardEnumAttribute") != null;
} }
public static bool HasBurstCompileAttribute(IHasCustomAttribute obj)
{
return obj.CustomAttributes.Find("Unity.Burst.BurstCompileAttribute") != null;
}
} }
} }