From b71d5611db087772179505ed10c82ca958900df7 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 15 Oct 2020 07:04:38 +0800 Subject: +advanced inspector --- .../Examples/CSharp/AIExample39_DynamicStatic.cs | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs (limited to 'Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample39_DynamicStatic.cs') 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 -- cgit v1.1-26-g67d0