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齐的博客!