// public double Reference // { // get { return m_Reference; } // set { m_Reference = value; } // } // // public double ReferenceMax // { // get { return m_ReferenceMax; } // set { m_ReferenceMax = value; } // } // // public double ReferenceMin // { // get { return m_ReferenceMin; } // set { m_ReferenceMin = value; } // } // // public string StringReference // { // get { return m_StringReference; } // set { m_StringReference = value; } // } protected override void OnChange() { if (IgnoreChanges) { return; } bool newValue = m_DefaultValue; if (PropertyFound) { if (m_CheckType == Check_Type.Boolean) { if (Property is Property <bool> ) { Property <bool> property = Property as Property <bool>; newValue = property.GetValue(); } } else if (m_CheckType == Check_Type.IsEmpty) { if (Property is Property <string> ) { Property <string> property = Property as Property <string>; newValue = string.IsNullOrEmpty(property.GetValue()); } } else if (m_CheckType == Check_Type.EqualToString) { if (Property is Property <string> ) { Property <string> property = Property as Property <string>; newValue = property.GetValue() == m_StringReference; } } else { var val = 0.0; if (Property is Property <int> ) { val = ((Property <int>)Property).GetValue(); } else if (Property is Property <float> ) { val = ((Property <float>)Property).GetValue(); } else if (Property is Property <double> ) { val = ((Property <double>)Property).GetValue(); } // else if (Property is Property<long>) // { // val = ((Property<long>) Property).GetValue(); // } // else if (Property is Property<short>) // { // val = ((Property<short>) Property).GetValue(); // } // else if (Property is Property<byte>) // { // val = ((Property<byte>) Property).GetValue(); // } if (m_CheckType == Check_Type.EqualToReference) { newValue = Math.Abs(val - m_Reference) < Mathf.Epsilon; } else if (m_CheckType == Check_Type.GreaterThanReference) { newValue = val > m_Reference; } else if (m_CheckType == Check_Type.LessThanReference) { newValue = val < m_Reference; } else if (m_CheckType == Check_Type.Between) { newValue = val <m_ReferenceMax && val> m_ReferenceMin; } } } if (m_Invert) { newValue = !newValue; } #if NOT_USE_UI_THREAD ApplyNewValue(newValue); #else MainThreadDispatcher.DispatchToMainThread(() => { ApplyNewValue(newValue); }); #endif }