void Analyze(NameService service, ConfuserContext context, ProtectionParameters parameters, FieldDef field) { if (IsVisibleOutside(context, parameters, field.DeclaringType) && (field.IsFamily || field.IsFamilyOrAssembly || field.IsPublic) && IsVisibleOutside(context, parameters, field)) { service.SetCanRename(field, false); } else if (field.IsRuntimeSpecialName) { service.SetCanRename(field, false); } else if (parameters.GetParameter(context, field, "forceRen", false)) { return; } else if (field.DeclaringType.IsSerializable && !field.IsNotSerialized) { service.SetCanRename(field, false); } // unity support else if (field.HasAttribute("UnityEngine.SerializeField")) { service.SetCanRename(field, false); } else if (field.IsLiteral && field.DeclaringType.IsEnum && !parameters.GetParameter(context, field, "renEnum", false)) { service.SetCanRename(field, false); } }