public void CreatePage(IUICarouselScrollPage page, int layer) { if (layer >= 0 && layer < _settings.Layers.Length) { _settings.Layers[layer].CreatePage(page); } else { throw new System.ArgumentOutOfRangeException("layer", "No layer with such index"); } }
public void CreatePage(IUICarouselScrollPage page) { if (!_pageSizeCached && _pivot != null) { if (_pivot is RectTransform) { RectTransform c = GetCanvasTransform(_pivot as RectTransform); if (c != null) { _pageWidth = c.sizeDelta.x; _dragScale = 1f; } } else { Vector3 p1 = Camera.main.ViewportToWorldPoint(new Vector2(0f, 0f)); Vector3 p2 = Camera.main.ViewportToWorldPoint(new Vector2(1f, 0f)); _pageWidth = Vector3.Distance(p1, p2); p1 = Camera.main.ViewportToScreenPoint(new Vector2(0f, 0f)); p2 = Camera.main.ViewportToScreenPoint(new Vector2(1f, 0f)); float screenWidth = Vector2.Distance(p1, p2); _dragScale = _pageWidth / screenWidth; } _pageSizeCached = true; } if (_nextPageShowPercent > 0f) { float pageSize = PageWidth; if (_useElementWidth) { pageSize = PageWidth * 0.5f - (page.GraphicsSize * _nextPageShowPercent) + page.GraphicsSize * 0.5f; } else { pageSize = PageWidth * _nextPageShowPercent; } _parallax = pageSize / PageWidth; } page.InitAsPage(PageWidth, Parallax); Vector3 scale = page.PageTransform.localScale; page.PageTransform.SetParent(Pivot); page.PageTransform.localScale = scale; page.PageTransform.localPosition = new Vector2(PageWidth * Parallax * Pages, 0); _pages.Add(page); }