UH2S3L16——Lua调用委托和事件
UH2S3L16——Lua调用委托和事件
Lua调用C#的委托和事件
假设我们要调用下面的委托和事件
1 | public class Lesson7 |
委托中加函数
委托是用来装函数的,使用C#中的委托 就是用来装lua函数的
Lua中没有复合运算符,不能用+=,如果第一次往委托中加函数 因为是nil不能直接+,所以第一次要先=
1 | local obj = Lesson7() |
和xLua不同,toLua不能直接执行委托中函数,必须要绕一个弯,在C#中封装一个执行委托的方法,然后再toLua中调用才行
1 | public class Lesson7 |
1 | obj:DoDel() |

委托中减函数
委托减函数很简单,直接使用-即可
1 | obj.del = obj.del - fun() |
清空委托函数
委托清空函数很简单,直接赋值为nil即可
1 | obj.del = nil |

事件中加函数
和xLua不同,toLua事件中加函数和委托方式一样,
但是要注意obj.eventAction直接赋值会报错,因为C#中不能直接为事件赋值,只能+=,-=
因此,toLua中事件不需要用=,直接+或者-即可
1 | local fun2 = function() |
事件中减函数
事件减函数很简单,直接使用-即可
1 | obj.eventAction = obj.eventAction - fun2 |
事件中清空函数
事件清空函数不能直接赋值为nil,因此调用C#中的Clear方法即可
1 | obj:ClearEvent() |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 文KRIFE齐的博客!
