summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs')
-rw-r--r--Assets/ThirdParty/AdvancedInspector/Examples/CSharp/AIExample30_RuntimeResolvedDynamic.cs30
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);
+ }
+}