相对于单播委托,多播委托可以绑定多个函数,不支持绑定有返回值函数:
无参多播委托
定义委托类型:
![](https://i-blog.csdnimg.cn/blog_migrate/8030446da6498c93c4906781756e9379.png)
声明委托变量:
![](https://i-blog.csdnimg.cn/blog_migrate/e13086251205e28d4e82f9e073d61d2d.png)
绑定函数:
![](https://i-blog.csdnimg.cn/blog_migrate/d295e3609d70e2105ff9f020c45d612c.png)
广播:
![](https://i-blog.csdnimg.cn/blog_migrate/0c510c9b7af41f068e4212ffd52559f2.png)
有参多播委托,最多支持9个参数
定义委托类型:
![](https://i-blog.csdnimg.cn/blog_migrate/02062e72d0ca6c2a520b9f69f09855ba.png)
声明委托变量:
![](https://i-blog.csdnimg.cn/blog_migrate/c1e9e7c674d98b89c207e51955e47389.png)
绑定函数:
![](https://i-blog.csdnimg.cn/blog_migrate/d397073d503ec123d6f4d3206833b244.png)
广播:
![](https://i-blog.csdnimg.cn/blog_migrate/4025686d184a391887df1d1ff470d790.png)
移除绑定函数:
移除有3种方式:
(1)移除单个函数
声明FDelegateHandle变量,接收绑定句柄:
![](https://i-blog.csdnimg.cn/blog_migrate/07eb01830ea8cf19c4d9a196fdc30e69.png)
![](https://i-blog.csdnimg.cn/blog_migrate/36a71fd6a90d3364a8a51f2541209ffe.png)
使用Remove解绑:
![](https://i-blog.csdnimg.cn/blog_migrate/bd04f73025c061cc9b00e5882d278df0.png)
广播后函数1被移除,后续广播只剩函数2执行:
![](https://i-blog.csdnimg.cn/blog_migrate/bec45109d1c47a7695acce6bf4954669.png)
(2)使用RemoveAll移除单个对象绑定的所有函数
![](https://i-blog.csdnimg.cn/blog_migrate/69dc4bfe5cf321615bab456adf729fae.png)
(3)使用Clear移除所有函数
![](https://i-blog.csdnimg.cn/blog_migrate/a1c2622290039d0a57e1ad2b89da5247.png)