Beispiel #1
0
    private void CreatePageDots()
    {
        Vector3    position   = -Vector3.up * this.m_hudCamera.orthographicSize / 1.25f;
        GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(new GameObject(), position, Quaternion.identity);

        gameObject.name             = "PageDots";
        gameObject.transform.parent = base.transform;
        float num = -(float)this.m_pageCount / 2f * 1.2f;

        for (int i = 0; i < this.m_pageCount; i++)
        {
            GameObject gameObject2 = UnityEngine.Object.Instantiate <GameObject>(this.m_pageDot);
            gameObject2.transform.parent        = gameObject.transform;
            gameObject2.transform.localPosition = new Vector3(num + (float)i * 1.2f, 0f, -95f);
            gameObject2.name = "Dot" + i + 1;
            PageDot component = gameObject2.GetComponent <PageDot>();
            this.m_dotsList.Add(component);
            if (i == this.m_page)
            {
                this.m_dotsList[i].Enable();
            }
            else
            {
                this.m_dotsList[i].Disable();
            }
        }
    }
Beispiel #2
0
    private void InitializePageDots()
    {
        _peviousPageIndex = PageSwiper.PageIndex;

        if (IsLotsOfPages)
        {
            if (maxDots % 2 == 0)
            {
                throw new Exception("maxDots must be an odd number.");
            }
            _halfDots = maxDots / 2;

            if (PageSwiper.PageIndex <= _halfDots)
            {
                // early dot
                _dotIndex           = PageSwiper.PageIndex;
                _middleDotPageIndex = _halfDots;
            }
            else if (PageSwiper.PageIndex >= PageSwiper.TotalPages - _halfDots)
            {
                // late dot
                _dotIndex           = maxDots - (PageSwiper.TotalPages - PageSwiper.PageIndex);
                _middleDotPageIndex = PageSwiper.TotalPages - _halfDots - 1;
            }
            else
            {
                // middle dot
                _dotIndex           = _halfDots;
                _middleDotPageIndex = PageSwiper.PageIndex;
            }
        }

        GameObject pageDots = pageDotTemplate.GetParent();

        _pageDots = new PageDot[PageSwiper.TotalPages];

        float originX   = pageDotTemplate.GetX() + pageDotTemplate.GetWidth();
        float dotWidth  = pageDotTemplate.GetWidth();
        float dotsWidth = (dotWidth + padding) * TotalDots;

        for (int i = 0; i < TotalDots; ++i)
        {
            PageDot pageDot = pageDots.MakeUiComponent(pageDotTemplate, "Page Dot " + (i + 1));
            pageDot.pageDot           = pageDotTemplate.pageDot;
            pageDot.pageDotLight      = pageDotTemplate.pageDotLight;
            pageDot.smallPageDot      = pageDotTemplate.smallPageDot;
            pageDot.smallPageDotLight = pageDotTemplate.smallPageDotLight;
            pageDot.SetX(originX + (dotWidth + padding) * i - dotsWidth / 2);
            _pageDots[i] = pageDot;
        }
        pageDotTemplate.GetGameObject().SetActive(false);
    }
Beispiel #3
0
    private void UpdatePageDots()
    {
        if (!IsLotsOfPages)
        {
            // when !IsLotsOfPages
            //  show page dot according to PageIndex
            for (int i = 0; i < TotalDots; ++i)
            {
                PageDot pageDot = _pageDots[i];
                pageDot.Selected = (PageSwiper.PageIndex == i);
            }
            return;
        }

        if (_isFloatingDot)
        {
            //
            // edge dots default as small
            FirstDot.Small = true;
            LastDot.Small  = true;

            // check if on the first two pages
            if (PageSwiper.PageIndex < 2)
            {
                // cease floating and make the first dot big
                _isFloatingDot = false;
                FirstDot.Small = false;

                // if on the first page display as such
                if (PageSwiper.PageIndex == 0)
                {
                    _dotIndex = 0;                                      // set to 1st
                }
            }

            // check if on the last two pages
            if (PageSwiper.PageIndex >= PageSwiper.TotalPages - 2)
            {
                // cease floating and make the last dot big
                _isFloatingDot = false;
                LastDot.Small  = false;

                // if on the last page display as such
                if (PageSwiper.PageIndex == PageSwiper.TotalPages - 1)
                {
                    _dotIndex = maxDots - 1;                            // set to last
                }
            }
        }
        else
        {
            //
            // edge dots calculated by position
            FirstDot.Small = _middleDotPageIndex > _halfDots;
            LastDot.Small  = _middleDotPageIndex < PageSwiper.TotalPages - _halfDots - 1;
        }

        // when IsLotsOfPages
        //  show page dot according to _dotIndex
        for (int i = 0; i < TotalDots; ++i)
        {
            PageDot pageDot = _pageDots[i];
            pageDot.Selected = _dotIndex == i;
        }
    }