Files
Studio/Assets/NewStudioPGD/Scripts/UI/Element/UI_LogicItem.cs

64 lines
1.8 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
namespace Studio.UI
{
public class UI_LogicItem : UIBase
{
public Button Button_Edit;
public Button Button_Remove;
public Button Button_Add;
public TextMeshProUGUI Text_Title;
public Action<UI_LogicItem> onClickAdd;
public Action<ELogic> onClickEdit;
public Action<UI_LogicItem> onClickRemove;
private ELogic currentLogic;
public void Awake()
{
Button_Edit = transform.Find(nameof(Button_Edit)).GetComponent<Button>();
Button_Remove = transform.Find(nameof(Button_Remove)).GetComponent<Button>();
Button_Add = transform.Find(nameof(Button_Add)).GetComponent<Button>();
Text_Title = transform.Find(nameof(Text_Title)).GetComponent<TextMeshProUGUI>();
Button_Edit.onClick.AddListener(OnClickEdit);
Button_Remove.onClick.AddListener(OnClickRemove);
Button_Add.onClick.AddListener(OnClickAdd);
Button_Edit.gameObject.SetActive(false);
Button_Remove.gameObject.SetActive(false);
}
private void OnClickEdit()
{
onClickEdit?.Invoke(currentLogic);
}
private void OnClickRemove()
{
onClickRemove?.Invoke(this);
}
private void OnClickAdd()
{
onClickAdd?.Invoke(this);
}
public void OnSelectLogic(ELogic logic)
{
currentLogic = logic;
Text_Title.text = logic.GetDescription();
Button_Add.gameObject.SetActive(false);
Button_Edit.gameObject.SetActive(true);
Button_Remove.gameObject.SetActive(true);
Text_Title.gameObject.SetActive(true);
}
}
}