C#
public class Lesson07
{
public UnityAction delAction;
public event UnityAction eventAction;
public void UseEvent()
{
eventAction?.Invoke();
}
public void ClearEvent()
{
eventAction = null;
}
}
Lua
使用C#委托
local obj=CS.Lesson07()
local fun=function()
print(“委托使用”)
end
- 添加函数
首次添加 类似赋值 lua中没有+= -=复合运算符
obj.delAction=fun 首次添加
obj.delAction=fun+obj.delAction 第二次添加
obj.delAction() 使用 - 减少函数
obj.delAction=obj.delAction-fun - 清空
obj.delAction=nil
使用事件
local fun2=function()
print(“事件使用”)
end
- 添加函数
类似使用成员方法
obj:eventAction("+",fun2)
obj:eventAction("+",fun2)
obj:UseEvent() 使用 - 移除函数
obj:eventAction("-",fun2) - 清空
事件不能直接赋值清空 可间接清空
obj:ClearEvent()