public virtual void Start()
        {
            if (NavigationSystem == null)
            {
                NavigationSystem = GetComponentInParent <NavigationSystem <T> >();
                Debug.AssertFormat(NavigationSystem != null, "NavigationFilter<{0}> did not find appropriate NavigationSystem in the hierarchy and will not work!", typeof(T).Name);
            }

            if (!IsScreenPartOfActiveArray(NavigationSystem.CurrentScreen))
            {
                gameObject.SetActive(false);
            }
            NavigationSystem.ScreenChanged += Navigation_ScreenChanged;
        }
 private void Navigation_ScreenChanged(object sender, NavigationSystem <T> .ScreenChangedEventArgs e)
 {
     gameObject.SetActive(IsScreenPartOfActiveArray(e.NewScreen));
 }