Unity все-таки заточен на компоненты, нежели на ООП. Поэтому лучшим решением будет навешивать на игрока различные компоненты, например:
Подвижный - он может двигаться.
Здоровье - у него есть здоровье и на него работает лечение и урон.
У какой-нибудь зверушки висят оба эти компонента (потому что она может ходить и нее есть здоровье), а вот у препятствия, которое можно сломать, только "Здоровье". У обычного перекати-поля - только "Подвижный " и т.п.
Аналогично с классами игрока, если он может варить зелья - добавь ему компонент Алхимика. Может кастовать - компонент Маг. И можно спокойно создавать любые варианты, вплоть до того, что какой-то класс не может носить тяжелые доспехи, потому что у него нет компонента на это.