diff --git a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Extensions/GameObjectExtensions.cs b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Extensions/GameObjectExtensions.cs index 23eae93e..c2ee2372 100644 --- a/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Extensions/GameObjectExtensions.cs +++ b/SuperTiled2Unity/Assets/SuperTiled2Unity/Scripts/Editor/Extensions/GameObjectExtensions.cs @@ -173,7 +173,7 @@ public static void BroadcastProperty(this GameObject go, CustomProperty property continue; } - // Finally, look for public fields + // Finally, look for fields var csfield = FindFieldBySignature(comp, property.m_Name, objValue.GetType()); if (csfield != null) { @@ -185,7 +185,7 @@ public static void BroadcastProperty(this GameObject go, CustomProperty property private static MethodInfo FindMethodBySignature(MonoBehaviour component, string name, Type paramType) { - return component.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public).Where(info => + return component.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Where(info => { // Name must match if (info.Name != name) @@ -218,8 +218,7 @@ private static MethodInfo FindMethodBySignature(MonoBehaviour component, string private static PropertyInfo FindPropertyBySignature(MonoBehaviour component, string name, Type valueType) { - // Property must be public and instanced and writable - return component.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public).Where( + return component.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Where( info => info.CanWrite && info.Name == name && @@ -229,7 +228,7 @@ private static PropertyInfo FindPropertyBySignature(MonoBehaviour component, str private static FieldInfo FindFieldBySignature(MonoBehaviour component, string name, Type valueType) { - return component.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public).Where( + return component.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Where( info => !info.IsInitOnly && info.Name == name &&