using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Panel : AbstractPanel { public string Header { get; set; } public string Content { get; set; } public GameObject PanelInstance { get; set; } public Panel() { } public Panel(Vector3 _position, Vector2 _size, Vector3 _scale) : base (_position, _size, _scale){ } public override GameObject BuildPanel() { GameObject panelPrefab = PanelComponentFactory.BuildCustomPanelWithContinue(Position, Size, Scale); panelPrefab.transform.Find("Header").gameObject.GetComponent<UnityEngine.UI.Text>().text = Header; panelPrefab.transform.Find("Content").gameObject.GetComponent<UnityEngine.UI.Text>().text = Content; return panelPrefab; } public GameObject BuildPanelWithoutContinue() { GameObject panelPrefab = PanelComponentFactory.BuildCustomPanel(Position, Size, Scale); panelPrefab.transform.Find("Header").gameObject.GetComponent<UnityEngine.UI.Text>().text = Header; panelPrefab.transform.Find("Content").gameObject.GetComponent<UnityEngine.UI.Text>().text = Content; return panelPrefab; } public void SetContinueButtonAction(Func<DialogueController, bool> onClickFunction, DialogueController dialogControllerModel) { PanelInstance.transform.Find("ContinueButton").GetComponent<Button>().onClick.AddListener(() => onClickFunction(dialogControllerModel)); } // support method protected Transform FindButtonByName(string _buttonName) { var panelButtonInstance = PanelInstance.transform.Find(_buttonName); if (!panelButtonInstance) throw new Exception($"Button {_buttonName} not found in composed panel"); return panelButtonInstance; } } // continue button // remove current game object instance from scene\ // do declared action // - in dialogue - set current panel as "readed" + open next / close // accept button // - the same what "continue" // // - add task to user /