diff options
Diffstat (limited to 'Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs')
-rw-r--r-- | Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs | 41 |
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 |