Почему не поддерживается конструктор класса в юнити?
Для классов, наследующих от MonoBehaviour, лучше не использовать конструктор. Во-первых, он будет вызываться и в инспекторе до запуска игры. Во-вторых, после запуска он вызовется дважды, я не знаю, с чем это связано, но не суть. Как вам уже подсказали, надо использовать Start/Awake. А для создания наследников класса MonoBehaviour использовать AddComponent для "прикрепления" на объект и Instantiate для создания объектов. Сами по себе, не используясь на сцене, эти классы не должны существовать.
Все поддерживается. И конструктор, и наследование, и полиморфизм. Ток для MonoBehaviour чуть чуть другие правила - там Start/Awake.