diff options
author | chai <chaifix@163.com> | 2020-10-15 07:04:38 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-15 07:04:38 +0800 |
commit | b71d5611db087772179505ed10c82ca958900df7 (patch) | |
tree | 5160f6af41d45529e435550879e0c87ea59c09a8 /Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample29_RuntimeResolve.cs | |
parent | b1b14c45ce95dcf7b81867d68d6006345d98959e (diff) |
+advanced inspector
Diffstat (limited to 'Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample29_RuntimeResolve.cs')
-rw-r--r-- | Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample29_RuntimeResolve.cs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample29_RuntimeResolve.cs b/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample29_RuntimeResolve.cs new file mode 100644 index 00000000..7fe9fc0b --- /dev/null +++ b/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample29_RuntimeResolve.cs @@ -0,0 +1,49 @@ +using UnityEngine; +using System.Collections; + +using AdvancedInspector; + +[AdvancedInspector] +public class AIExample29_RuntimeResolve : MonoBehaviour +{ + public bool myBoolean; + public float myFloat; + public string myString; + + private int index = 0; + + // The RuntimeResolve attribute is an edge case tool where you want to display an object, but don't know it's proper type. + // In this case, there is no editor for "object", but there's one for bool, float and string. + // By default the Advanced Inspector uses the editor related to the declared type, not the current object type. + // The RuntimeResolve forces it to seek the proper editor for the current type. + [Inspect, RuntimeResolve] + public object MyProperty + { + get + { + if (index == 0) + return myBoolean; + else if (index == 1) + return myFloat; + else + return myString; + } + set + { + if (index == 0) + myBoolean = (bool)value; + else if (index == 1) + myFloat = (float)value; + else + myString = (string)value; + } + } + + [Inspect] + public void PressMe() + { + index++; + if (index > 2) + index = 0; + } +} |