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