2025-09-08 14:51:28 +08:00
|
|
|
/// <summary>
|
|
|
|
|
///********************************************************
|
|
|
|
|
/// 作者: DDG
|
|
|
|
|
/// 日期: 2024/12/13 11:54:37
|
|
|
|
|
/// 功能:
|
|
|
|
|
///********************************************************
|
|
|
|
|
/// <summary>
|
|
|
|
|
using BookCurlPro;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
using ZXKFramework;
|
|
|
|
|
|
2025-09-08 17:37:12 +08:00
|
|
|
namespace DongWuYiXue.DaoNiaoShu
|
2025-09-08 14:51:28 +08:00
|
|
|
{
|
|
|
|
|
public class BookPanel : UIBase
|
|
|
|
|
{
|
|
|
|
|
public override string GroupName => "BookPanel";
|
|
|
|
|
public override string Name => "BookPanel";
|
|
|
|
|
public BookPro bookProPrefab;
|
|
|
|
|
BookPro bookPro;
|
|
|
|
|
public GameObject FrontPagePrefab;
|
|
|
|
|
public GameObject BackPagePrefab;
|
|
|
|
|
|
|
|
|
|
public GameObject FrontFengMian;
|
|
|
|
|
public GameObject BackFengMian;
|
|
|
|
|
|
|
|
|
|
Button next_Btn;
|
|
|
|
|
bool shangxiahuadong;
|
|
|
|
|
List<BookPanelData> bookPanelDatas;
|
|
|
|
|
public override void Init(IUIManager uictrl)
|
|
|
|
|
{
|
|
|
|
|
base.Init(uictrl);
|
|
|
|
|
next_Btn = transform.FindFirst<Button>("next_Btn");
|
|
|
|
|
next_Btn.onClick.AddListener(() =>
|
|
|
|
|
{
|
|
|
|
|
SetActive(false);
|
|
|
|
|
GameManager.Instance.fsm.nextState = true;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
public void ShowBook(string group)
|
|
|
|
|
{
|
|
|
|
|
if(bookPro!=null)
|
|
|
|
|
{
|
|
|
|
|
Destroy(bookPro.gameObject);
|
|
|
|
|
bookPro = null;
|
|
|
|
|
}
|
|
|
|
|
SetActive(true);
|
|
|
|
|
bookPro = Instantiate(bookProPrefab);
|
|
|
|
|
bookPro.transform.SetParent(transform, false);
|
|
|
|
|
bookPro.gameObject.SetActive(true);
|
|
|
|
|
shangxiahuadong = false;
|
|
|
|
|
bookPro.OnFlip.AddListener(() =>
|
|
|
|
|
{
|
|
|
|
|
if (!shangxiahuadong)
|
|
|
|
|
{
|
|
|
|
|
shangxiahuadong = true;
|
|
|
|
|
bookPro.transform.FindFirst("上下滑动动画").SetActive(true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
bookPanelDatas = GetModel<GameModel>().excelData.allBookPanelData.FindAll(e=>e.group == group);
|
|
|
|
|
for (int i = 0; i < bookPanelDatas.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
if (i % 2 != 0 && i > 0)
|
|
|
|
|
{
|
|
|
|
|
AddPaper_Txt(bookPro, bookPanelDatas[i - 1].txt.Replace("<br>","\n"), bookPanelDatas[i].txt.Replace("<br>", "\n"), i,i+1);
|
|
|
|
|
}
|
|
|
|
|
if(i == (bookPanelDatas.Count - 1) && (i % 2 == 0))
|
|
|
|
|
{
|
|
|
|
|
AddPaper_Txt(bookPro, bookPanelDatas[i].txt.Replace("<br>", "\n"), "",i+1,i+2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
AddPaper_FengMian(bookPro);
|
|
|
|
|
}
|
|
|
|
|
public void AddPaper_Txt(BookPro book,string frontTxt,string backTxt,int frontNum,int backNum)
|
|
|
|
|
{
|
|
|
|
|
GameObject frontPage = Instantiate(FrontPagePrefab);
|
|
|
|
|
frontPage.FindFirst<Text>("bookText").text = frontTxt;
|
|
|
|
|
frontPage.FindFirst<Text>("numText").text = frontNum.ToString();
|
|
|
|
|
GameObject backPage = Instantiate(BackPagePrefab);
|
|
|
|
|
backPage.FindFirst<Text>("bookText").text = backTxt;
|
|
|
|
|
backPage.FindFirst<Text>("numText").text = backNum.ToString();
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
public void AddPaper_FengMian(BookPro book)
|
|
|
|
|
{
|
|
|
|
|
GameObject frontPage = Instantiate(FrontFengMian);
|
|
|
|
|
GameObject backPage = Instantiate(BackFengMian);
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|