51 if ((isEqualTo !=
null) == (isNotEqualTo !=
null)) {
52 throw new ArgumentException(
"Must specify exactly one of 'equalTo' or 'notEqualTo'.");
55 if (isEqualTo !=
null) {
58 }
else if (isNotEqualTo !=
null) {
64 throw new ArgumentException(
"Only values of bool or Enum are allowed in comparisons using DisableIf.");
71 public bool ShouldDisable(SerializedProperty property) {
73 var prop =
property.serializedObject.FindProperty(name);
75 bool result = shouldDisable(prop);
94 private bool shouldDisable(SerializedProperty property) {
95 if (property ==
null) {
96 throw new System.NullReferenceException(
97 "Property was null. Expected one of " +
propertyNames.ToArrayString());
99 if (
nullIsValid && property.propertyType == SerializedPropertyType.ObjectReference) {
101 }
else if (property.propertyType == SerializedPropertyType.Boolean) {
103 }
else if (property.propertyType == SerializedPropertyType.Enum) {
106 Debug.LogError(
"Can only conditionally disable based on boolean or enum types.");
114 public DisableIf(
string propertyName,
object isEqualTo =
null,
object isNotEqualTo =
null) :
115 base(isEqualTo, isNotEqualTo, true, false, false, propertyName) { }
120 base(To, null, true, true, true, propertyName) { }
125 base(null, To, true, true, false, propertyName) { }
130 public DisableIfAny(
string propertyName1,
string propertyName2,
object areEqualTo =
null,
object areNotEqualTo =
null) :
131 base(areEqualTo, areNotEqualTo, false, false, false, propertyName1, propertyName2) { }
133 public DisableIfAny(
string propertyName1,
string propertyName2,
string propertyName3,
object areEqualTo =
null,
object areNotEqualTo =
null) :
134 base(areEqualTo, areNotEqualTo, false, false, false, propertyName1, propertyName2, propertyName3) { }
136 public DisableIfAny(
string propertyName1,
string propertyName2,
string propertyName3,
string propertyName4,
object areEqualTo =
null,
object areNotEqualTo =
null) :
137 base(areEqualTo, areNotEqualTo, false, false, false, propertyName1, propertyName2, propertyName3, propertyName4) { }
142 public DisableIfAll(
string propertyName1,
string propertyName2,
object areEqualTo =
null,
object areNotEqualTo =
null) :
143 base(areEqualTo, areNotEqualTo, true, false, false, propertyName1, propertyName2) { }
145 public DisableIfAll(
string propertyName1,
string propertyName2,
string propertyName3,
object areEqualTo =
null,
object areNotEqualTo =
null) :
146 base(areEqualTo, areNotEqualTo, true, false, false, propertyName1, propertyName2, propertyName3) { }
148 public DisableIfAll(
string propertyName1,
string propertyName2,
string propertyName3,
string propertyName4,
object areEqualTo =
null,
object areNotEqualTo =
null) :
149 base(areEqualTo, areNotEqualTo, true, false, false, propertyName1, propertyName2, propertyName3, propertyName4) { }
DisableIfAll(string propertyName1, string propertyName2, string propertyName3, object areEqualTo=null, object areNotEqualTo=null)
DisableIfAll(string propertyName1, string propertyName2, object areEqualTo=null, object areNotEqualTo=null)
DisableIfAll(string propertyName1, string propertyName2, string propertyName3, string propertyName4, object areEqualTo=null, object areNotEqualTo=null)
DisableIfAny(string propertyName1, string propertyName2, object areEqualTo=null, object areNotEqualTo=null)
DisableIfAny(string propertyName1, string propertyName2, string propertyName3, string propertyName4, object areEqualTo=null, object areNotEqualTo=null)
DisableIfAny(string propertyName1, string propertyName2, string propertyName3, object areEqualTo=null, object areNotEqualTo=null)
Conditionally disables a property based on the value of another property. The only condition types th...
readonly bool isAndOperation
readonly bool nullIsValid
readonly string[] propertyNames
readonly bool equalToComparison
readonly bool disableResult
DisableIfBase(object isEqualTo, object isNotEqualTo, bool isAndOperation, bool nullIsValid, bool equalToComparison, params string[] propertyNames)
readonly object testValue
DisableIfEqual(string propertyName, object To)
DisableIf(string propertyName, object isEqualTo=null, object isNotEqualTo=null)
DisableIfNotEqual(string propertyName, object To)