Как скрыть в инспекторе унаследованные поля родительского класса С# - Unity

Данный класс UnitState, родительский к такому классу как PlayerState а он родитель класса Ability отвечающие за Состояние игрока и за его способности соответственно. В данном классе UnitState есть поля отвечающие за базовые характеристика юнита, его прокачку, уровень и здоровье.

Юнит - в данном проекте сущность которая может иметь такие параметры.

И так как Ability унаследуется от PlayerState то я в инспекторе вижу данные поля да и в целом унаследовал их, какой способ мне нужен чтобы класс Ability не смог унаследовать некоторые ненужные мне поля? Или хотябы скрыть их в инспекторе движка?

Класс Ability и PlayerState только добавляют новые поля не трогая унаследованные поля

Класса PlayerState в инспекторе

Отображение класса PlayerState В инспекторе

Класс RageAbility наследник Ability в инспекторе

Отображение класса наследника Ability В инспекторе

Класс UnitState

public class UnitState : MonoBehaviour
{
    [System.Serializable]
    public struct StatsValues
    {
        public int maxLevel;
        [Space]
        public float maxHealth;
        public float damage;
    
        public StatsValues(float maxHealth, float damage, int maxLevel)
        {
            this.maxHealth = maxHealth;
            this.damage = damage;
            this.maxLevel = maxLevel;
        }
    }

    [System.Serializable]
    public struct LevelUpgrades
    {
        [Range(2, 100)] public int level;
        public float maxHealth;
        public float damage;
    }
    
    [SerializeField] private StatsValues _stats;
    [Space]
    [SerializeField] private List<LevelUpgrades> _levelUpgrades;
    
    [Header("Status")]
    [SerializeField] private int _currentLevel;
    [SerializeField] private float _health;
    
    [Header("Links")]
    [SerializeField] private GameObject _damagerObject;
}

Ответы (2 шт):

Автор решения: Алексей Шиманский

какой способ мне нужен чтобы класс Ability не смог унаследовать некоторые ненужные мне поля?

как и во всех языках мира - сделать поля приватными

Или хотябы скрыть их в инспекторе движка?

сделать поля приватными и не SerializeField либо [HideInInspector]

→ Ссылка
Автор решения: RosterNord

Сделать так,чтобы SerializeField и public переменные не видил класс наследник,можно. Я лично устанавливаю таким полям {get;private set;} свойства,и всё работает как надо.

→ Ссылка