diff options
Diffstat (limited to 'Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs')
-rw-r--r-- | Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs b/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs new file mode 100644 index 00000000..28aedb57 --- /dev/null +++ b/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs @@ -0,0 +1,30 @@ +using UnityEngine; +using System; +using System.Collections; + +using AdvancedInspector; + +[AdvancedInspector] +public class AIExample30_RuntimeResolvedDynamic : MonoBehaviour +{ + [Inspect] + public Material mat; + + [SerializeField] + private UnityEngine.Object myField; + + // Using the RuntimeResolve with a linked function allows you to restrist the type of object that shows up in Unity's object picker. + // It is sometimes useful when you want a dynamic property to only show a specific type of object at a specific moment. + // In this example, only Material will show up as being valid, even if MyProperty is null. + [Inspect, RuntimeResolve("GetResolvedType")] + public object MyProperty + { + get { return myField; } + set { myField = value as UnityEngine.Object; } + } + + private Type GetResolvedType() + { + return typeof(Material); + } +} |