first commit
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class NoteUI : MonoBehaviour
|
||||
{
|
||||
private const string PanelKey = "NoteUI";
|
||||
|
||||
public static NoteUI Instance { get; private set; }
|
||||
|
||||
[SerializeField] private GameObject notePanel;
|
||||
[SerializeField] private Text titleText;
|
||||
[SerializeField] private Text contentText;
|
||||
[SerializeField] private Button closeButton;
|
||||
|
||||
public bool IsOpen => notePanel != null && notePanel.activeSelf;
|
||||
|
||||
public void Configure(GameObject panel, Text titleLabel, Text contentLabel, Button closePanelButton)
|
||||
{
|
||||
notePanel = panel;
|
||||
titleText = titleLabel;
|
||||
contentText = contentLabel;
|
||||
closeButton = closePanelButton;
|
||||
|
||||
if (notePanel != null)
|
||||
{
|
||||
notePanel.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (Instance != null && Instance != this)
|
||||
{
|
||||
Destroy(gameObject);
|
||||
return;
|
||||
}
|
||||
|
||||
Instance = this;
|
||||
|
||||
if (closeButton != null)
|
||||
{
|
||||
closeButton.onClick.RemoveListener(CloseNote);
|
||||
closeButton.onClick.AddListener(CloseNote);
|
||||
}
|
||||
}
|
||||
|
||||
public void ShowNote(string noteTitle, string noteContent)
|
||||
{
|
||||
if (notePanel == null || titleText == null || contentText == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (Inventory.Instance != null && Inventory.Instance.IsOpen)
|
||||
{
|
||||
Inventory.Instance.CloseInventory();
|
||||
}
|
||||
|
||||
if (DialogueUI.Instance != null && DialogueUI.Instance.IsOpen)
|
||||
{
|
||||
DialogueUI.Instance.CloseDialogue();
|
||||
}
|
||||
|
||||
titleText.text = noteTitle;
|
||||
contentText.text = noteContent;
|
||||
notePanel.SetActive(true);
|
||||
GameUIState.SetPanelOpen(PanelKey, true);
|
||||
}
|
||||
|
||||
public void CloseNote()
|
||||
{
|
||||
if (notePanel == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
notePanel.SetActive(false);
|
||||
GameUIState.SetPanelOpen(PanelKey, false);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user