diff options
Diffstat (limited to 'Assets/Scripts/Unit/Collider/ColliderAttributes.cs')
-rw-r--r-- | Assets/Scripts/Unit/Collider/ColliderAttributes.cs | 58 |
1 files changed, 55 insertions, 3 deletions
diff --git a/Assets/Scripts/Unit/Collider/ColliderAttributes.cs b/Assets/Scripts/Unit/Collider/ColliderAttributes.cs index 9b9c142f..47998b3c 100644 --- a/Assets/Scripts/Unit/Collider/ColliderAttributes.cs +++ b/Assets/Scripts/Unit/Collider/ColliderAttributes.cs @@ -36,17 +36,64 @@ public class IfNotAttribute : Attribute } - public class WhenAttribute : Attribute { - public WhenAttribute(string name, float value) + public WhenAttribute(string name, object value) { this.conditionName = name; - this.value = value; + this.value = (int)value; + } + + public WhenAttribute(string name, params object[] values)
+ {
+ this.conditionName = name;
+ this.values = new List<float>();
+ foreach(var v in values)
+ {
+ this.values.Add((float)v);
+ }
+ } + + public bool IsSatisfied(float v)
+ {
+ if (values != null)
+ return values.Contains(v);
+ return value == v;
} public string conditionName; public float value; + public List<float> values; +} + +public class AndWhenAttribute : Attribute +{ + public AndWhenAttribute(string name, object value) + { + this.conditionName = name;
+ this.value = (int)value; + } + + public AndWhenAttribute(string name, params object[] values)
+ {
+ this.conditionName = name;
+ this.values = new List<float>();
+ foreach (var v in values)
+ {
+ this.values.Add((float)v);
+ }
+ } + + public bool IsSatisfied(float v)
+ {
+ if (values != null)
+ return values.Contains(v);
+ return value == v;
+ } + + public string conditionName; + public float value; + public List<float> values; } public class WhenNotAttribute : Attribute @@ -81,3 +128,8 @@ public class FoldoutAttribute : Attribute public string title; public int count; // 下面的元素的个数 } + + +public class HDRAttribute : Attribute
+{
+} |