heterogeneous container in inspector
If you have lets say a list of some base class, it would seem the only way to actually assign different derived types to it in the inspector is to use ScriptableObject? Am I missing something?
Your question sounds very confusing. Did you mean the question in reverse? As it stands it doesn't make much sense. So "the only reason to derive your base class from ScriptableObject is to be able to assign different derived types in the inspector" would make more sense.
You should overthink your question and be more specific about what's your problem or what you're trying to do.
Sorry, was meant to say only way to ins$$anonymous$$d of only reason to :)
Answer by Owen-Reynolds · Sep 14, 2017 at 03:57 PM
An editor script (which isn't that difficult to write, once you get all the magic parts sorted out,) should be able to create and display each sub-type properly.
But, yes, Animal[] in the Inspector does seem useless at first. There's no built-in way using the UI to create or to display a Cat or Dog element.
Uhm, but inheritance is only supported for ScriptableObjects or $$anonymous$$onoBehaviours. Custom serializable classes do not support polymorphism.
ScriptableObjects on the other hand would need to be stored somewhere as assets. Though i'm still not sure what he's actually asking.
Ahh...serialization won't check for subtypes. That's the non-fixable problem.
So you can fill public Animal[] A; with Cats and Dogs through code. You can live-view or even safely change just the Animal part through the basic Inspector. But you can't serialize them, which is a deal-breaker. Unity will only ever save it to a file as an array of Animal slices.
The OnSerializeBegin/End callbacks hint they can fix this. But they only help you transform data Unity can serialize into something it can't. They can't prevent serialize from losing all the Cat and Dog data in the first place.
Your answer
![](https://koobas.hobune.stream/wayback/20220612134832im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How to save a two-dimensional array, as part of the variable inspector? 0 Answers
Unity Editor - Group Public GameObjects 0 Answers
How do I use EditorGUILayout.EnumPopup with an enum with 'holes' in a custom inspector. 3 Answers
Is it possible to customize how a variable of a certain type would look in the inspector? 1 Answer
Why does Unity use the default values for my Serializable objects while running? 1 Answer