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(); } } }
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); }
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; } }