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");
     }
 }
Example #2
0
        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);
        }