using System.Collections.Generic;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using UnityEngine;
public class TooltipUI : BaseUI
{
public List<TooltipBase> ToolTips;
void Start(){
//OpenTooltip(Dosomething);
OpenTooltip(TooltipType.Ok,"测试描述","OK",DoPressOkButton,DoPressCancelButton);
//OpenTooltip(TooltipType.OkCancle, "测试描述", "OK","取消", DoPressOkButton, DoPressCancelButton);
//OpenTooltip(TooltipType.SmallTip,"测试玩着",Dosomething);
}
public static TooltipUI Instance
{
get{
TooltipUI tooltipUI = UIManager.Instance.GetCurUI (UIType.TooltipUI) as TooltipUI;
if (tooltipUI == null) {
UIManager.Instance.OpenUI (UIType.TooltipUI);
}
tooltipUI = UIManager.Instance.GetCurUI (UIType.TooltipUI) as TooltipUI;
if (tooltipUI == null) {
Debug.LogError ("代码错误,界面没有正常打开");
}
return tooltipUI;
}
}
public override void AddListener()
{
base.AddListener();
}
public override void ReleaseListner()
{
base.ReleaseListner();//TooltipUI.Instance.OpenTooltip(
}
public override void Init()
{
base.Init();
}
public override void OnLoad()
{
base.OnLoad();
}
//回调测试
void Dosomething()
{
Debug.Log ("回调测试");
}
//按钮回调测试
void DoPressOkButton()
{
Debug.Log ("回调测试:您按下了OK按钮了!");
}
void DoPressCancelButton()
{
Debug.Log ("回调测试:您按下了Cancel按钮了");
}
//TooltipType.Ok
public void OpenTooltip(TooltipType type, string descript, string okStr, System.Action okCallback,System.Action cancelCallback)
{
TooltipOK tooltipOk=ToolTips[0] as TooltipOK;
tooltipOk.OpenPanel(tooltipOk.gameObject);
tooltipOk.SetData(type);
if (okCallback == null)
Debug.Log("okCallback空回调");
tooltipOk.OKCallback = okCallback;
if (tooltipOk.OKCallback == null)
Debug.Log("OKCallback为空回调");
tooltipOk.CancleCallback = cancelCallback;
tooltipOk.OkBtnTxt.text = okStr;
tooltipOk.DescriptTxt.text = descript;
Debug.Log(this.GetHashCode());
}
//TooltipType.OkCancel
public void OpenTooltip(TooltipType type, string descript, string okStr, string cancelStr, System.Action okCallback,System.Action cancelCallback)
{
TooltipOkCancel tooltipOkCancel = ToolTips[1] as TooltipOkCancel;
tooltipOkCancel.OpenPanel(tooltipOkCancel.gameObject);
tooltipOkCancel.SetData(type);
tooltipOkCancel.DescriptTxt.text= descript;
tooltipOkCancel.SaveBtnTxt.text = okStr;
tooltipOkCancel.NonSaveBtnTxt.text = cancelStr;
tooltipOkCancel.OKCallback = okCallback;
tooltipOkCancel.CancleCallback = cancelCallback;
}
//TooltipType.SmallTip
public void OpenTooltip(TooltipType type,string descript,System.Action okCallback)
{
TooltipSmallTip tooltipSmallTip = ToolTips[2] as TooltipSmallTip;
tooltipSmallTip.OpenPanel(tooltipSmallTip.gameObject);
tooltipSmallTip.SetData(type);
tooltipSmallTip.DescriptTxt.text = descript;
tooltipSmallTip.OKCallback = okCallback;
tooltipSmallTip.AutoHid();
}
public void OnClose(){
UIManager.Instance.CloseUI(UIType.TooltipUI);
Debug.Log("关闭测试");
}
}
public enum TooltipType
{
OkCancle, //okcancle
Ok,
SmallTip,
}
--------------------------------------
条用另一个类实现回调
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TooltipOK : TooltipBase {
public Button OkButton;
public Button CloseButton;
public Text OkBtnTxt;
public override void OnLoad()
{
base.OnLoad ();
}
public override void Init ()
{
base.Init ();
}
//--打开面板--
public override void OpenPanel(GameObject obj)
{
base.OpenPanel (obj);
}
//--关闭面板--
public void Invoke_Ok()
{
if (OKCallback == null)
Debug.Log("空调用");
if (OKCallback != null) {
OKCallback();
OKCallback = null;
}
Debug.Log("调用确认按钮");
ClosePanel(this.gameObject);
}
public void Invoke_Close()
{
Debug.Log("调用关闭按钮");
ClosePanel (this.gameObject);
if (CancleCallback != null)
{
CancleCallback();
CancleCallback = null;
}
}
}