summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-15 07:04:38 +0800
committerchai <chaifix@163.com>2020-10-15 07:04:38 +0800
commitb71d5611db087772179505ed10c82ca958900df7 (patch)
tree5160f6af41d45529e435550879e0c87ea59c09a8 /Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs
parentb1b14c45ce95dcf7b81867d68d6006345d98959e (diff)
+advanced inspector
Diffstat (limited to 'Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs')
-rw-r--r--Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs41
1 files changed, 41 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs b/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs
new file mode 100644
index 00000000..511eb837
--- /dev/null
+++ b/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+using System.Collections;
+
+using AdvancedInspector;
+
+[AdvancedInspector]
+public class AIExample39_DynamicStatic : MonoBehaviour
+{
+ // A Runtime Dynamic attribute can also recieve the path towards a static method declared in any type.
+ // This offers a way to write generic conditionals.
+ // The '.' denote a path towards a method. The class owning the method can be nested.
+ [Inspect("StaticDynamicExample.Inspect")]
+ public bool myVariable;
+
+ public bool displayItem = true;
+
+ // In this example, the button toggle on/off the display of "myVariable".
+ [Inspect]
+ public void PressMe()
+ {
+ displayItem = !displayItem;
+ }
+
+ [Inspect, Help(HelpAttribute.IsNull, HelpType.Error, "Should not be null!")]
+ public Camera nullField;
+}
+
+public class StaticDynamicExample
+{
+ // The delegate should have a single param argument.
+ // Usually, Advanced Inspector pass the instance and the value as argument.
+ // Other attribute may pass extra argument, such as Regex or the attribute properties.
+ private static bool Inspect(InspectAttribute inspect, object instance, object value)
+ {
+ AIExample39_DynamicStatic example = instance as AIExample39_DynamicStatic;
+ if (example == null)
+ return false;
+
+ return example.displayItem;
+ }
+} \ No newline at end of file