public override void OnInspectorGUI()
        {
            serializedObject.Update();

            EditorGUILayout.PropertyField(CompProp);
            var guiColor = GUI.color;

            var names = Props.Select(x => x.Name).ToList();
            var ids   = Props.Select(x => x.Id).ToList();

            var index = ids.IndexOf(PropertyId.stringValue);

            if (index < 0)
            {
                names.Insert(0, "UNDEFINED");
                ids.Insert(0, Guid.Empty.ToString());
                index     = 0;
                GUI.color = Color.yellow;
            }

            var selectedIndex = EditorGUILayout.Popup(PropsLabel, index, names.ToArray());

            if (selectedIndex != index)
            {
                PropertyId.stringValue = ids[selectedIndex];
            }

            GUI.color = guiColor;
            PointerOverriderEditor.DrawGUI(Props, names[selectedIndex]);

            serializedObject.ApplyModifiedProperties();
        }
 protected void OnEnable()
 {
     CompProp               = serializedObject.FindProperty("_comp");
     PropertyId             = serializedObject.FindProperty("_propertyId");
     PointerOverriderEditor = new PointerOverriderEditor(serializedObject);
 }