I am facing the following problem: I have a List of Serializable classes that are created using a custom editor. When entering play mode, the list is preserved, as expected, but any objects in it are turned into their superclass. For example if i have a list of 'Move' which contains some 'SpecialMove' which inherits from move it is turned into 'Move' on play mode. Any ideas on why it happens and how I can work around it? EDIT: It turns out Unity's serializer is the cause for this. Apparently it does not support polymorphism concepts. Any work arounds?