fb692e1bb8
Add multi-threading dialogue system
67 lines
2.1 KiB
C#
67 lines
2.1 KiB
C#
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 /
|