/// <summary> /// ノベル情報をもとに見た目を構築する /// </summary> /// <param name="parent">親になるクラス ボタンのクリックイベントを親に向けて送るのに使う</param> /// <param name="novel">ノベル情報</param> public void Draw(GallaryController parent, NovelInfo novel) { if (novel != null) { _Title.text = novel.Title1 + novel.Title2; Texture2D novelTexture = Resources.Load <Texture2D>($"Image/{novel.Id1}-{novel.Id2}") ?? _NoImageTexture; _Image.texture = novelTexture; // ノベル情報を添えて親のメソッドを呼ぶ _Button.onClick.AddListener(() => parent.OnNovelClick(novel)); } else { _Title.text = "???"; _Image.texture = null; _Image.color = Color.clear; } // 文字数によってフォントサイズを変える int textLength = _Title.text.Length; if (textLength <= 25) { _Title.fontSize = 14; } else { _Title.fontSize = 10; } }
/// <summary> /// 上半分を生成する /// </summary> /// <param name="parent">親にあたるクラス ここでは使わずボタンまで渡す</param> /// <param name="novelInfoList">ノベル情報リスト</param> /// <param name="pageIndex">何ページ目を生成するか</param> public void Create(GallaryController parent, NovelInfoList novelInfoList, Histories histories, int pageIndex) { for (int i = 0; i < ItemsCount; i++) { // {pageIndex}ページ目の{i}個目のノベル int novelId = pageIndex * ItemsCount + i; NovelInfo novel = null; if (novelId >= 0 && novelId < novelInfoList.list.Length) { novel = novelInfoList.list[novelId]; if (histories.Get(novel.Id1, novel.Id2) <= 0) { novel = null; } } _Novels[i].Draw(parent, novel); } }