private void _updatePages() { // TODO // Debug.Log(" @ BigPageView._updatePages(): " + this._pageIndex); bool[] cacheStatus = new bool[2 * this._pageCacheSize + 1]; for (int childIndex = 0; childIndex < this._contentPanel.transform.childCount; childIndex++) { GameObject pageContainerGameObject = this._contentPanel.transform.GetChild(childIndex).gameObject; if (pageContainerGameObject.activeSelf) { BigPageViewPageContainer pageContainer = pageContainerGameObject.GetComponent <BigPageViewPageContainer> (); if (pageContainer.pageIndex < this._pageIndex - this._pageCacheSize || pageContainer.pageIndex > this._pageIndex + this._pageCacheSize) { this._freePageContainer(pageContainerGameObject); // Debug.Log (" @ BigPageview._free(" + pageContainer.pageIndex + ")"); } else { cacheStatus [pageContainer.pageIndex - (this._pageIndex - this._pageCacheSize)] = true; } } } for (int pageIndex = this._pageIndex - this._pageCacheSize; pageIndex <= this._pageIndex + this._pageCacheSize; pageIndex++) { if (pageIndex >= 0 && pageIndex <= this.pages - 1 && !cacheStatus [pageIndex - (this._pageIndex - this._pageCacheSize)]) { GameObject pageContainerGameObject = this._allocPageContainer(); // Debug.Log (" @ BigPageview._alloc(" + pageIndex + ")"); BigPageViewPageContainer pageContainer = pageContainerGameObject.GetComponent <BigPageViewPageContainer> (); pageContainer.pageIndex = pageIndex; this.bigPageViewDelegate.GetPage(pageContainerGameObject, pageIndex); } } }
public void SetLayoutHorizontal() { BigPageView bigPageView = bigPageViewGameObject.GetComponent<BigPageView> (); RectTransform bigPageViewRectTransform = (bigPageViewGameObject.transform as RectTransform); float contentWidth = bigPageViewRectTransform.rect.width; float contentHeight = bigPageViewRectTransform.rect.height; RectTransform contentRectTransform = this.GetComponent<RectTransform> (); switch (bigPageView.direction) { case BigPageView.Direction.Horizontal: { contentWidth *= bigPageView.bigPageViewDelegate != null? bigPageView.pages: 0; if (contentWidth != contentRectTransform.rect.width || contentHeight != contentRectTransform.rect.height) { contentRectTransform.offsetMin = new Vector2(0, -contentHeight); contentRectTransform.offsetMax = new Vector2 (contentWidth, 0); } for (int childIndex = 0; childIndex < this.transform.childCount; childIndex++) { RectTransform pageContainerTransform = this.transform.GetChild (childIndex) as RectTransform; BigPageViewPageContainer pageContainer = pageContainerTransform.GetComponent<BigPageViewPageContainer> (); pageContainerTransform.anchorMin = new Vector2(0, 1); pageContainerTransform.anchorMax = new Vector2(0, 1); pageContainerTransform.offsetMin = new Vector2(bigPageViewRectTransform.rect.width * pageContainer.pageIndex, -bigPageViewRectTransform.rect.height); pageContainerTransform.offsetMax = new Vector2(bigPageViewRectTransform.rect.width * (pageContainer.pageIndex + 1), 0); } break; } } }