(unity和C#)Event

本文介绍了C#中的Event概念,将其比喻为视频作者发布新视频时通知粉丝的过程。Unity中的Event则提供了方便的拖拽操作,可以通过Serializable序列化。同时,文中讨论了C#的Action和Unity的Action,它们都是封装好的委托类型,可以注册多个方法。Unity的Event配合Action使用,可以一次性调用所有注册的方法。此外,还提到了Unity中如button.onClick等事件的使用方式。
摘要由CSDN通过智能技术生成

简介

实例

  • 简单调用

    using UnityEngine;
    
    public class DelegateExample : MonoBehaviour {
        //Step1. 定义类型----为Delegate定义一种函数原型
        public delegate void MyDelegate(int args);
        //Step2. 声明变量----声明一个Delegate变量
        public MyDelegate myDelegate;
    
        private void Start()
        {
            //Step3. 变量赋值----引用Delegate变量实现相应的函数
            myDelegate = PrintNum;
            myDelegate(5);
        }
    
        public void PrintNum(int num)
        {
            print("Print number: " + num);
        }
    }
  • C# Event

    把Event想象成一个视频作者,并且他还具有一大堆热情的粉丝,每天都在等待新视频的发布。为了在第一时间收看到新发布的视频,粉丝们大多会选择订阅视频作者,这样作者更新时你就会收到一条即时消息。event只负责告诉每个函数什么时候被调用,这些函数到底干了什么,event并不关心

    //Idol.cs 广播消息 定义的event相当于源头,只要调用了该事件,都会引起注册该事件的人调用相应的注册方法
    public class Idol : MonoBehaviour {
        public delegate void IdolBehaviour(string behaviour);
        public static event IdolBehaviour IdolDoSomethingHandler;
    
        private void Start()
        {
            //Idol 决定搞事了, 如果他还有粉丝的话, 就必须全部都通知到
            if (IdolDoSomethingHandler != null)
            {
                IdolDoSomethingHandler("Idol give up writing.");
            }
        }
    }
    //SubscriberA.cs  订阅消息 很早注册订阅了,当event发送了,那么就会调用对应方法
    public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值