public void Init(ChapterObject[] chapterObjects, Menu.OnChapterAction loadAction) { foreach (Transform t in transform) { Destroy(t.gameObject); } List <ChapterObject> list = chapterObjects.ToList(); // list.Sort(Comparison); foreach (var o in list) { var panel = Instantiate(prefab, transform); panel.Init(o, loadAction); // Navigation if (o == list.First()) { firstPanel = panel.GetComponent <Button>(); MarkFirstChapter(); lastPanelButton = panel.GetComponent <Button>(); } else if (o == list[1]) { Navigation navigation = new Navigation { mode = Navigation.Mode.Explicit, selectOnDown = horizontalScrollbar.GetComponent <Scrollbar>(), selectOnRight = panel.GetComponent <Button>() }; lastPanelButton.navigation = navigation; beforeLastPanelButton = lastPanelButton; lastPanelButton = panel.GetComponent <Button>(); } else { Navigation navigation = new Navigation { mode = Navigation.Mode.Explicit, selectOnDown = horizontalScrollbar.GetComponent <Scrollbar>(), selectOnLeft = beforeLastPanelButton, selectOnRight = panel.GetComponent <Button>() }; lastPanelButton.navigation = navigation; beforeLastPanelButton = lastPanelButton; lastPanelButton = panel.GetComponent <Button>(); } if (o == list.Last()) { Navigation navigation = new Navigation { mode = Navigation.Mode.Explicit, selectOnDown = horizontalScrollbar.GetComponent <Scrollbar>(), selectOnLeft = beforeLastPanelButton }; panel.GetComponent <Button>().navigation = navigation; } } }
public void Init(ChapterObject chapterObject, Menu.OnChapterAction loadAction) { chapterName.text = chapterObject.chapterName; image.sprite = chapterObject.image; button.onClick.AddListener(() => loadAction.Invoke(chapterObject)); }