/// <summary>
        /// Create a new custom CurrentState control
        /// </summary>
        /// <param name="name">Name of the setting displayed on the left</param>
        protected CurrentStateCategorySubItemBase(string name)
        {
            Name = name ?? throw new ArgumentNullException(nameof(name));

            Visible = new BehaviorSubject <bool>(true);
            Visible.Subscribe(
                b =>
            {
                if (RootGameObject != null)
                {
                    RootGameObject.SetActive(b);
                }
            });
        }