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