UH2S2L25——事件加减替换

事件加减替换

事件加减替换一般是为了将传入的方法存入到Lua的容器内

固定语法为:

1
2
3
4
5
6
7
8
9
10
xlua.hotfix(CS.HotfixMain, {
add_myEvent = function(self, del)
--del是要添加的函数
--不要再执行self:myEvent("+", del)!!!!!!
end,
remove_myEvent = function(self, del)
--del是要移除的函数
--不要再执行self:myEvent("-", del)!!!!!!
end
})

事件加减替换指的是,对事件的+=​和-=​做重定向操作,只要执行到这些语句就使用Lua相关的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Hotfix]
public class HotfixMain : MonoBehaviour
{
event UnityAction myEvent;

void Start()
{
LuaManager.Instance.Init();
LuaManager.Instance.DoLuaFile("Main");

myEvent += TestTest;
myEvent -= TestTest;
}

private void TestTest() { }
}

事件加减的重定向lua函数的目的,一般是把传入的函数存在lua的容器中

在事件加减的重定向lua函数中,千万不要把传入的委托往事件里存,否则会死循环!!!

1
2
--self:myEvent("+", del)
警告!切勿在事件加减的重定向lua函数中,这些上面的代码否则将会造成反复进入事件加减的重定向lua函数,造成死循环

image

会去尝试使用lua使用C#事件的方法去添加
在事件加减的重定向lua函数中,千万不要把传入的委托往事件里存!!!!!
否则会死循环
会把传入的 函数 存在lua中!!!!!
self:myEvent(“+”, del)