86 lines
2.3 KiB
C#
Raw Normal View History

2024-12-14 18:27:59 +08:00
using UnityEngine;
using UnityEngine.UI;
using QFramework;
using TMPro;
using System;
2024-12-30 19:15:34 +08:00
using static OperationController;
2024-12-14 18:27:59 +08:00
namespace QFramework.Example
{
public class UIResultTipData : UIPanelData
{
public bool isRight = false;
public string label;
2025-01-14 18:16:35 +08:00
public float autoHideTime = -1;
2024-12-14 18:27:59 +08:00
public Action callback;
}
public partial class UIResultTip : UIPanel
{
protected override void OnInit(IUIData uiData = null)
{
mData = uiData as UIResultTipData ?? new UIResultTipData();
Right.gameObject.SetActive(false);
Wrong.gameObject.SetActive(false);
2025-01-09 09:43:15 +08:00
TypeEventSystem.Global.Register<OnModuleQuit>((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject);
2024-12-14 18:27:59 +08:00
}
2024-12-30 19:15:34 +08:00
private void OnStepChanged(StepStatusOnChange change)
{
Hide();
}
2024-12-14 18:27:59 +08:00
protected override void OnOpen(IUIData uiData = null)
{
2025-01-09 13:35:04 +08:00
TypeEventSystem.Global.Register<StepStatusOnChange>(OnStepChanged).UnRegisterWhenDisabled(gameObject);
2024-12-14 18:27:59 +08:00
Right.gameObject.SetActive(false);
Wrong.gameObject.SetActive(false);
mData = uiData as UIResultTipData ?? new UIResultTipData();
GameObject obj;
if (mData.isRight)
{
obj = Right.gameObject;
}
else
{
obj = Wrong.gameObject;
}
obj.SetActive(true);
obj.transform.Find("Bg/Label").GetComponent<TextMeshProUGUI>().text = mData.label;
2025-01-14 18:16:35 +08:00
if (mData.autoHideTime == -1)
2024-12-14 18:27:59 +08:00
{
2025-01-14 18:16:35 +08:00
Button btn = obj.GetComponent<Button>();
btn.onClick.RemoveAllListeners();
btn.onClick.AddListener(() =>
{
SetHide();
});
}
else
{
ActionKit.Delay(mData.autoHideTime, () =>
{
SetHide();
2025-01-14 18:48:46 +08:00
}).Start(this);
2025-01-14 18:16:35 +08:00
}
2024-12-14 18:27:59 +08:00
}
2025-01-14 18:16:35 +08:00
public void SetHide()
{
mData.callback?.Invoke();
Hide();
}
2024-12-14 18:27:59 +08:00
protected override void OnShow()
{
}
protected override void OnHide()
{
}
protected override void OnClose()
{
}
}
}