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[i];
 
             if (action.actionType != actionTypes[i])
             {
                 actionTypes[i] = action.actionType;
                 switch (action.actionType)
                 {
                     case ActionEnum.ChildAction1:
                         actions[i] = new ChildAction1();
                         break;
                     case ActionEnum.ChildAction2:
                         actions[i] = new ChildAction2();
                         break;
                     default:
                         break;
                 }
                 actions[i].actionType = actionTypes[i];
             }
         }
   }
 }
 
               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 ?
Answer by Amtsamy · Dec 19, 2020 at 05:47 PM
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?
Your answer
 
             Follow this Question
Related Questions
Dynamically sized list of toggles in custom inspector? 0 Answers
Target field of a MonoBehaviour attribute ? 1 Answer
CustomEditor stops displaying after changing script location 1 Answer
Custom Inspector Script Resetting Information 0 Answers
Custom Editor Inspector member class with inheritance, values resets after starting Play Mode 1 Answer