예제 #1
0
        public void ShowAlbum()
        {
            open = true;
            SystemsController.RunningAlbum(true);
            m_animator.SetTrigger("In");

            bool         front = true;
            PageBehavior page  = Instantiate(pagePrefab, pageContainer).GetComponent <PageBehavior>();

            pages.Add(page.transform);

            for (int cardListIndex = 0; cardListIndex < playerCards.List.Count; cardListIndex++)
            {
                // troca de página
                if (cardListIndex % cardsByPage == 0 && cardListIndex != 0)
                {
                    if (front)
                    {
                        front = !front;
                    }
                    else
                    {
                        page = Instantiate(pagePrefab, pageContainer).GetComponent <PageBehavior>();
                        pages.Add(page.transform);
                        page.transform.SetAsFirstSibling();
                        front = !front;
                    }
                }

                Card card;

                if (front)
                {
                    card = Instantiate(cardPrefab, page.front).GetComponent <Card>();
                }
                else
                {
                    card = Instantiate(cardPrefab, page.back).GetComponent <Card>();
                }
                card.Setup(playerCards.List[cardListIndex]);
            }
        }
예제 #2
0
        IEnumerator ChangePage(int page, bool showFront)
        {
            changingPage = true;
            float timer = 0;

            float progress = 0;

            Quaternion desired = showFront ? frontRotation.localRotation : backRotation.localRotation;
            Quaternion start   = pages[page].rotation;

            pages[page].SetAsLastSibling();

            PageBehavior pb = pages[page].GetComponent <PageBehavior>();

            do
            {
                progress = Mathf.Min(timer / changePageTime, 1);

                if (progress > 0.55)
                {
                    if (showFront)
                    {
                        pb.ShowFront(frontRotation.rotation);
                    }
                    else
                    {
                        pb.ShowBack(backRotation.rotation);
                    }
                }

                pages[page].localRotation = Quaternion.Slerp(start, desired, progress);

                timer += Time.deltaTime;

                yield return(null);
            } while (timer < changePageTime);
            changingPage = false;
        }