Exemplo n.º 1
0
        private void Start()
        {
            float scaleFactor = 1;

            if (_canvas)
            {
                scaleFactor = _canvas.scaleFactor;
            }

            var   rect       = _bookTransform.rect;
            float pageWidth  = (rect.width * scaleFactor - 1) / 2;
            float pageHeight = rect.height * scaleFactor;

            _leftTransform.gameObject.SetActive(false);
            _rightTransform.gameObject.SetActive(false);

            var     bookPosition = _bookTransform.position;
            Vector3 globalsb     = bookPosition + new Vector3(0, -pageHeight / 2);

            _spineBottom = transformPoint(globalsb);
            Vector3 globalebr = bookPosition + new Vector3(pageWidth, -pageHeight / 2);

            _edgeBottomRight = transformPoint(globalebr);
            Vector3 globalebl = bookPosition + new Vector3(-pageWidth, -pageHeight / 2);

            _edgeBottomLeft = transformPoint(globalebl);
            Vector3 globalst = bookPosition + new Vector3(0, pageHeight / 2);

            _spineTop = transformPoint(globalst);
            radius1   = Vector2.Distance(_spineBottom, _edgeBottomRight);

            float scaledPageWidth  = pageWidth / scaleFactor;
            float scaledPageHeight = pageHeight / scaleFactor;

            radius2 = Mathf.Sqrt(scaledPageWidth * scaledPageWidth + scaledPageHeight * scaledPageHeight);
            _clippingPanelTransform.sizeDelta = new Vector2(scaledPageWidth * 2, scaledPageHeight + scaledPageWidth * 2);
            _shadowTransform.sizeDelta        = new Vector2(scaledPageWidth, scaledPageHeight + scaledPageWidth * 0.6f);
            _shadowLTRTransform.sizeDelta     = new Vector2(scaledPageWidth, scaledPageHeight + scaledPageWidth * 0.6f);
            _nextPageClipTransform.sizeDelta  = new Vector2(scaledPageWidth, scaledPageHeight + scaledPageWidth * 0.6f);

            _rightHotspot.AddEntry(EventTriggerType.BeginDrag, OnMouseDragRightPage);
            _rightHotspot.AddEntry(EventTriggerType.EndDrag, OnMouseRelease);
            _rightHotspot.AddEntry(EventTriggerType.Drag, OnDrag);

            _leftHotspot.AddEntry(EventTriggerType.BeginDrag, OnMouseDragLeftPage);
            _leftHotspot.AddEntry(EventTriggerType.EndDrag, OnMouseRelease);
            _leftHotspot.AddEntry(EventTriggerType.Drag, OnDrag);

            // Update starting pages
            CurrentPage = _startingPage;
            UpdatePages();
        }