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