/// /// Tool script taken from the UI source as it's set to Internal for some reason. So to use in the extensions project it is needed here also. /// /// namespace UnityEngine.UI.Extensions { internal static class SetPropertyUtility { public static bool SetColor(ref Color currentValue, Color newValue) { if (currentValue.r == newValue.r && currentValue.g == newValue.g && currentValue.b == newValue.b && currentValue.a == newValue.a) return false; currentValue = newValue; return true; } public static bool SetStruct(ref T currentValue, T newValue) where T: struct { if (currentValue.Equals(newValue)) return false; currentValue = newValue; return true; } public static bool SetClass(ref T currentValue, T newValue) where T: class { if ((currentValue == null && newValue == null) || (currentValue != null && currentValue.Equals(newValue))) return false; currentValue = newValue; return true; } } }