39 lines
1.7 KiB
C#
39 lines
1.7 KiB
C#
using UnityEngine;
|
|
namespace BookCurlPro.Examples
|
|
{
|
|
/// <summary>
|
|
/// How to use it:
|
|
/// 1) Create a new gameobject in the scene and attach this script on it
|
|
/// 2) Create a prefab for the front and back pages(should be similar to the the page object that is created by the editor and has the same components)
|
|
/// 3) Assign the front and back prefabs to this component
|
|
/// 4) Call the function AddPaper when you want to add a new paper in the book
|
|
/// 5) you may need to customize this function to add a paper in specific position in the book or to change some parts of the front and back prefabs dynamically
|
|
/// </summary>
|
|
public class AddPagesDynamically : MonoBehaviour
|
|
{
|
|
public GameObject FrontPagePrefab;
|
|
public GameObject BackPagePrefab;
|
|
public void AddPaper(BookPro book)
|
|
{
|
|
GameObject frontPage = Instantiate(FrontPagePrefab);
|
|
GameObject backPage = Instantiate(BackPagePrefab);
|
|
frontPage.transform.SetParent(book.transform, false);
|
|
backPage.transform.SetParent(book.transform, false);
|
|
Paper newPaper = new Paper();
|
|
newPaper.Front = frontPage;
|
|
newPaper.Back = backPage;
|
|
Paper[] papers = new Paper[book.papers.Length + 1];
|
|
for (int i = 0; i < book.papers.Length; i++)
|
|
{
|
|
papers[i] = book.papers[i];
|
|
}
|
|
papers[papers.Length - 1] = newPaper;
|
|
book.papers = papers;
|
|
//update the flipping range to contain the new added paper
|
|
book.EndFlippingPaper = book.papers.Length - 1;
|
|
book.UpdatePages();
|
|
}
|
|
|
|
}
|
|
}
|