| 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;        }    }}
 |