Custom Editor List with child classes

Hello everyone !

I’m trying to show variables from children class in the inspector, while having a list of parent class.

So in my game I’m making several action scripts all inheriting from one base master Action script as such:

[System.Serializable]
public class BaseAction {
   public ActionEnum actionType;
  // Some base variables and methods here
}

public class ChildAction1 : BaseAction {
  // Child action specific variables and methods
}

public class ChildAction2 : BaseAction {
  // Child specific variables and methods
}

Where ActionEnum is a public enum representing all the possible child actions
and i have another script holding a public List<BaseAction> actions. I then update the list as such:

[ExecuteInEditMode]
public class ActionHolder : MonoBehaviour {
  public List<BaseAction> actions;
  private List<ActionEnum> actionTypes;

  private void OnValidate () {
    for (int i = 0; i < actions.Count; i++)
        {
            var action= actions*;*

if (action.actionType != actionTypes*)*
{
actionTypes = action.actionType;
switch (action.actionType)
{
case ActionEnum.ChildAction1:
actions = new ChildAction1();
break;
case ActionEnum.ChildAction2:
actions = new ChildAction2();
break;
default:
break;
}
actions_.actionType = actionTypes*;
}
}
}
}*

And of course I initialize the actionTypes enum at the start and update it when the size of the list is changed to avoid out-of-bound errors. The swapping works perfectly fine up to this point.
My main problem is that in the inspector, only variables from the BaseAction class are displayed, and I would like it to show variables from the child class.
Is there an easy way to do it or should I make a custom editor script for the list where I recreate every single variable field for each member of the actions list (basically rewriting the entire OnInspectorGUI() function.
Is there another way ?_

Hello, am trying to achive the same thing, have you found a solution??,Hello, this exactly what am trying to achive now, have you found a solution?