public static void AutoFlipPage(int pageNumber, BookPro book, float duration, FlipMode mode, Action OnComplete) { book.targetPageNumber = pageNumber; HomePageFlipper flipper = book.GetComponent <HomePageFlipper>(); if (!flipper) { flipper = book.gameObject.AddComponent <HomePageFlipper>(); } flipper.enabled = true; flipper.book = book; flipper.isFlipping = true; flipper.duration = duration - Time.deltaTime; flipper.finish = OnComplete; flipper.xc = (book.EndBottomLeft.x + book.EndBottomRight.x) / 2; flipper.pageWidth = (book.EndBottomRight.x - book.EndBottomLeft.x) / 2; flipper.pageHeight = Mathf.Abs(book.EndBottomRight.y); flipper.flipMode = mode; flipper.elapsedTime = 0; float x; if (mode == FlipMode.RightToLeft) { x = flipper.xc + (flipper.pageWidth * 0.99f); float y = (-flipper.pageHeight / (flipper.pageWidth * flipper.pageWidth)) * (x - flipper.xc) * (x - flipper.xc); book.AutoDragRightPageToPoint(new Vector3(x, y, 0)); } else { x = flipper.xc - (flipper.pageWidth * 0.99f); float y = (-flipper.pageHeight / (flipper.pageWidth * flipper.pageWidth)) * (x - flipper.xc) * (x - flipper.xc); book.AutoDragLeftPageToPoint(new Vector3(x, y, 0)); } }
public void FlipLeftPage(int pageNum) { if (isPageFlipping) return; if (ControledBook.CurrentPaper <= 0) return; isPageFlipping = true; HomePageFlipper.AutoFlipPage(pageNum, ControledBook, PageFlipTime, FlipMode.LeftToRight, () => { isPageFlipping = false; }); }
void Update() { if (flippingStarted) { elapsedTime += Time.deltaTime; if (elapsedTime > DelayBeforeStart) { if (nextPageCountDown < 0) { if ((ControledBook.CurrentPaper <= ControledBook.EndFlippingPaper && Mode == FlipMode.RightToLeft) || (ControledBook.CurrentPaper > ControledBook.StartFlippingPaper && Mode == FlipMode.LeftToRight)) { isPageFlipping = true; HomePageFlipper.FlipPage(ControledBook.targetPageNumber,ControledBook, PageFlipTime, Mode, ()=> { isPageFlipping = false; }); } else { flippingStarted = false; this.enabled = false; } nextPageCountDown = PageFlipTime + TimeBetweenPages+ Time.deltaTime; } nextPageCountDown -= Time.deltaTime; } } }
public void FlipRightPage(int pageNum) { if (isPageFlipping) return; if (ControledBook.CurrentPaper >= ControledBook.papers.Length) return; isPageFlipping = true; HomePageFlipper.AutoFlipPage(pageNum, ControledBook, PageFlipTime, FlipMode.RightToLeft, ()=> { isPageFlipping = false; }); }