12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using System.Collections.Generic;
- using UnityEngine;
-
- namespace XCharts.Runtime
- {
- public static class PropertyUtil
- {
- 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 SetColor(ref Color32 currentValue, Color32 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<T>(ref T currentValue, T newValue) where T : struct
- {
- if (EqualityComparer<T>.Default.Equals(currentValue, newValue))
- return false;
-
- currentValue = newValue;
- return true;
- }
-
- public static bool SetClass<T>(ref T currentValue, T newValue, bool notNull = false) where T : class
- {
- if (notNull)
- {
- if (newValue == null)
- {
- Debug.LogError("can not be null.");
- return false;
- }
- }
- if ((currentValue == null && newValue == null) || (currentValue != null && currentValue.Equals(newValue)))
- return false;
-
- currentValue = newValue;
- return true;
- }
- }
- }
|