关于unity 使用delegate 和 event 小例子

本人属于水平不高的,看了项目中使用的delegate和event,拿来分享一下。

网上关于delegate和event的例子已经非常非常多了,讲解的一定比我详细,但是有时时间紧迫没时间仔细研究想拿来直接用可以看看我这个小例子。

1.首先写委托和事件的脚本 Main:

public class Main : MonoBehaviour
{
    public delegate void PointDelegate(string message);


    public static event PointDelegate PointEvent;


    public static void DoEvent(string message)
    {
        PointEvent(message);
    }
}


2.在unity创建一个按钮,按钮上绑定EventClick这个脚本:

public class EventClick : MonoBehaviour
{
    void OnClick()
    {
        Main.DoEvent("click");
    }
}


3.在unity创建一个空的物体,上面绑定EventMonitor这个脚本:

public class EventMonitor : MonoBehaviour
{
    void Start()
    {
        Main.PointEvent += Do;
    }


    private void Do(string message)
    {
        Debug.Log(message);
    }
}


说明:

Main这个脚本主要是定义委托和事件,EventClick这个脚本相当于广播消息,EventMonitor这个脚本是监听消息只要接受到事件PointEvent它就执行以下Do函数。

可以假设Main相当于定义事件的地方,EventClick这里可以想象成接受到了一条网络层的消息(如服务器充的钻石到账了)然后它广播一下,EventMonitor可以想象成UI上挂的脚本监听广播的消息(如刚才广播了钻石到帐了,那么我这个打开的UI有一个地方显示玩家拥有的钻石数,这时就更新一下)。


PS:监听的地方可以写很多,所以一条事件广播出来,只要是激活的GameObject有监听就会执行该干的事情。

待csdn下载审核通过后,我会把我的例子上传上去,不要积分的。嘿嘿。

下载地址:http://download.csdn.net/detail/bill501y/8383679

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值