private void Awake() { m_BtnBg.onClick.AddListener(() => { m_Player.Next(); }); m_ChooseRoot.gameObject.SetActive(false); m_Player = new DialoguePlayer(); m_Player.OnDoChoose = (choose) => { m_ChooseRoot.gameObject.SetActive(true); m_ChooseBtnRoot.transform.RemoveAllChild(); m_TxtTitle.text = choose.GetTitle(); m_TxtContent.text = choose.GetContent(); var chooses = choose.Chooses; for (int i = 0; i < chooses.Count; i++) { var choosePicked = chooses[i]; var go = Instantiate(m_BtnPrefab.gameObject, Vector3.zero, Quaternion.identity, m_ChooseBtnRoot.transform); var chooseBtn = go.GetComponent <DramaChooseBtn>(); chooseBtn.Txt.text = chooses[i].Title; chooseBtn.Btn.onClick.AddListener(() => { m_Player.PickChoose(choosePicked); m_ChooseBtnRoot.transform.RemoveAllChild(); m_ChooseRoot.gameObject.SetActive(false); }); } }; m_Player.OnDoContent = (content) => { m_TxtTitle.text = content.GetTitle(); m_TxtContent.text = content.GetContent(); }; m_Player.OnDoFinish = (finish) => { m_TxtTitle.text = ""; m_TxtContent.text = ""; gameObject.SetActive(false); }; m_Player.PlayDialogue(m_BluePrint); }