public SubSelectionArrowHelper(Image leftArrow, Image rightArrow,
                                   Image leftArrowApply, Image rightArrowApply, LeanTweenType easeType,
                                   float tweenTime, AbstractMenuManager menuManager, SelectorWithSubSelector selector)
    {
        this.leftArrow  = leftArrow;
        this.rightArrow = rightArrow;

        this.leftArrowApply  = leftArrowApply;
        this.rightArrowApply = rightArrowApply;

        this.tweenTime = tweenTime;
        this.easeType  = easeType;

        this.menuManager = menuManager;
        this.selector    = selector;
    }
    private void Initialize()
    {
        menuManager = GetComponent <AbstractMenuManager>();
        selector    = (SelectorWithSubSelector)menuManager.Selector;

        arrowTweenHelper = new SubSelectionArrowHelper(leftArrow, rightArrow, leftArrowApply,
                                                       rightArrowApply, easeType, tweenTime, menuManager, selector);

        // Event registration
        menuManager.NavigationNext        += arrowTweenHelper.RepositionArrows;
        menuManager.NavigationPrevious    += arrowTweenHelper.RepositionArrows;
        menuManager.SubNavigationNext     += arrowTweenHelper.RepositionArrows;
        menuManager.SubNavigationPrevious += arrowTweenHelper.RepositionArrows;

        menuManager.SubNavigationNext     += arrowTweenHelper.DoRightArrowSizeTween;
        menuManager.SubNavigationPrevious += arrowTweenHelper.DoLeftArrowSizeTween;
    }
 private void Start()
 {
     menuManager = transform.parent.gameObject.GetComponent <AbstractMenuManager>();
     selector    = (SelectorWithSubSelector)menuManager.Selector;
 }