How can one get the actual drawn type instance from property drawer

Unity’s custom editors have a “target” property which can be casted as the current inspected object instance type like so: MyObject myObject = target as MyObject. Then you can easily access the instance methods. In property drawers the inspected object instance can be get though property.serializedObject.targetObject. What i need is to get the “property drawn” object instance so i can update some variables in it.I tried to figure this out with reflection, but it seems that i can’t find any variable to hook in order to find that drawn instance.I prefer not to switch and use ScriptableObject instead of property drawer in this case, but if it’s no way around this i will use it.The reason i don’t like Scriptable Object in this case is because of the drag and drop nature of it.I will show what i am trying to do in case somebody has some idea to give.

    [Serializable]
    public class TweenWrapper
    {
        private delegate float TweenMethod(float t, float b, float c, float d);
        private TweenMethod m_tweenMethod;

        public EasingMethod easingMethod;
        public EasingType easingType;

#if UNITY_EDITOR
        public void Update()
        {
            GameFramework.Debug.Log(easingMethod);
            if (easingMethod == EasingMethod.In)
            {
                switch (easingType)
                {
                    case EasingType.Back: { m_tweenMethod = RobertPenner.BackEaseIn; break; }
                    case EasingType.Bounce: { m_tweenMethod = RobertPenner.BounceEaseIn; break; }
                    case EasingType.Circ: { m_tweenMethod = RobertPenner.CircEaseIn; break; }
                    case EasingType.Cubic: { m_tweenMethod = RobertPenner.CubicEaseIn; break; }
                    case EasingType.Elastic: { m_tweenMethod = RobertPenner.ElasticEaseIn; break; }
                    case EasingType.Expo: { m_tweenMethod = RobertPenner.ExpoEaseIn; break; }
                    case EasingType.Linear: { m_tweenMethod = RobertPenner.Linear; break; }
                    case EasingType.Quad: { m_tweenMethod = RobertPenner.QuadEaseIn; break; }
                    case EasingType.Quart: { m_tweenMethod = RobertPenner.QuartEaseIn; break; }
                    case EasingType.Quint: { m_tweenMethod = RobertPenner.QuintEaseIn; break; }
                    case EasingType.Sine: { m_tweenMethod = RobertPenner.SineEaseIn; break; }
                }
            }
        }
#endif
        public float Tween(float t, float b, float c, float d)
        {
            return m_tweenMethod(t, b, c, d);
        }

This is the shorter version of the Update() method :)Basically the thing i want to update is the delegate m_tweenMethod. Any other ideas not including ScriptableObject?

Use the fieldInfo property in PropertyDrawer

var target = property.serializableObject.targetObject;
fieldInfo.SetValue(target, value);