利用System.Action做回调
来源:互联网 发布:数据农场采集器 编辑:程序博客网 时间:2024/06/15 03:32
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;
}
}
}
- 利用System.Action做回调
- System.Func<>与System.Action<>
- System.Func<>与System.Action<>
- IntelliJ IDEA Action System
- System.Func<>与System.Action<> 简单对比
- [Mahout in action]--Recommender System
- 利用ajax调用action
- System.Action invalid arguments ! siverlight 4 wcf
- SettingsProvider之Settings.System(Secure)-------Action
- C#中System.Func<>与System.Action<>的区别
- 泛型委托System.Func<>与System.Action<>
- 利用Action Script3动态语言的特点
- 利用Action的常用Intent跳转
- Android利用系统Action裁剪图片大小
- Struts2_07_利用action类传递get参数
- FACS(Facial Action Code System)相关链接
- 《Go in Action 2015.11.pdf》之Go’s type system
- Android Studio插件开发2之Action System
- 在pipeline中写json文件
- JQuery 向下展开收起动画( slideDown(),slideUp() )
- php文件打开错误警告
- 人脸识别算法调研
- BASIC-21VIP试题 Sine之舞
- 利用System.Action做回调
- vue2.0子组件向父组件传递数据(饿了么例子)vue2.0废弃$dispatch,替换成$emit 和$refs
- MP4文件网络播放时 边缓冲边播放
- MVP自定义拦截器 OK封装
- 如何处理流写入文件后面多加出一个null
- Python在人工智能中的作用
- thinkphp5+vue 接口api验证码方式
- SVN 主干和分支的拆分与合并(版本控制)
- spring mvc 5.0 在线中文api 02