我正在 VB.net 中创建一个通过 LuaInterface 使用 Lua 的系统。
要将 Lua 中的事件与函数相关联,我可以简单地这样做:
RegisterEvent("tick", function(nt)
if not lcc then return end
if nt>=tt then
f()
lcc=false
end
end)
如您所见,我目前正在使用该lcc
变量来“取消”该功能。这有点被破坏了,并且该函数仍将被调用,从而导致不必要的开销。这就是我的“RegisterEvent”子在我的 VB.net 中的样子
Public Sub RegisterEvent(ByVal eventName As String, ByVal func As LuaFunction)
Select Case eventName.ToLower
Case "keydown"
AddHandler Me.event_keydown, AddressOf func.Call
Case "keyup"
AddHandler Me.event_keyup, AddressOf func.Call
Case "mousedown"
AddHandler Me.event_mousedown, AddressOf func.Call
Case "mouseup"
AddHandler Me.event_mouseup, AddressOf func.Call
Case "ready"
AddHandler Me.event_ready, AddressOf func.Call
Case "tick"
AddHandler Me.event_tick, AddressOf func.Call
Case "frame"
AddHandler Me.event_frame, AddressOf func.Call
End Select
End Sub
我想在我的 Lua 中做这样的事情:
local lcc=RegisterEvent("tick", function(nt)
print("The Ticks Are Now At: "..nt)
if nt>5000 then
DisconnectEvent(lcc)
end
end)
问题是,我不确定我应该如何更改我的 RegisterEvent 函数/子以及我应该如何制作 DisconnectEvent。
谢谢你的帮助。我知道尝试理解我想说的话有点烦人。随时发表评论要求澄清。我将非常愿意尝试并尽我所能解释它。如果 LuaInterface 有某种本机方式来处理这个问题,我也对此持开放态度:)
任何能提供帮助的东西都很棒!