コード例 #1
0
    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));
        }
    }
コード例 #2
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; });
 }
コード例 #3
0
    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;
            }
        }
    }
コード例 #4
0
 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; });
 }