12345678910111213141516171819202122232425262728 |
- using System.Reflection;
- namespace UnityEditor.Recorder
- {
- class TargetedPropertyDrawer<T> : PropertyDrawer where T : class
- {
- protected T target;
- protected virtual void Initialize(SerializedProperty prop)
- {
- if (target == null)
- {
- var path = prop.propertyPath.Split('.');
- object obj = prop.serializedObject.targetObject;
-
- foreach (var pathNode in path)
- obj = GetSerializedField(obj, pathNode).GetValue(obj);
- target = obj as T;
- }
- }
- static FieldInfo GetSerializedField(object target, string pathNode)
- {
- return target.GetType().GetField(pathNode, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
- }
- }
- }
|