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