LuaInterface在C#中的混淆问题
2012-9-2 6:46:50
收藏:0
阅读:202
评论:1
我以前多次作为最终用户使用过Lua,并且我似乎记得能够在Lua中创建一个方法,然后通过RegisterFunction调用将该方法注册到程序中。
我知道我必须在应用程序中创建RegisterFunction调用才能使该设置起作用,但我的问题是是否必须自己在Lua中实现方法的支持?
据我所知,我目前唯一的选择是DoString和DoFile,我无法找到任何帮助。
我正尝试将Lua添加到我的游戏设置中,用于所有实体代码。我已将其设置为允许我在每种实体类型的某些事件中放置脚本,并且我希望将Lua方法附加到这些事件以调用它们。
例如:
OnDamagedEvent += DoLuaMethod(method, Entity ID);
从我对任何编程的理解来看,我不认为可以仅通过“DoString”执行整个方法,除非该字符串一次包含了整个方法,我认为它可以,但这是它应该使用的方式吗? 我计划一次只发送一行到引擎。
如果我在Lua中定义了一个方法,该方法是否将永久(在该实例中)定义为可用?
如果是这样,我如何将该方法的访问器放入C #中并稍后访问它,发送所需的信息来调用参数(我记得有特定的方法类型,您必须从中选择,以便它知道要发送到该方法的信息)
如果我因为不知道应如何设置似乎是一个非常简单的概念而听起来像一个非常新手,我深表歉意,我只是不确定代码应该如何布置以及我应该使用LuaInterface的哪些方法!
提前感谢您的任何帮助 :)
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
好的,我已经找到了所有问题的答案。
LuaInterface 有一个 "LuaFunction" 类,你可以使用它来引用 Lua 中的函数。
一旦脚本运行了,任何已经初始化的函数在脚本运行后仍将保持初始化状态。
您可以使用 Lua.GetFunction(FUNCTION NAME) 来设置 LuaFunction 对象,在 Lua 引用保存函数的实例之后(运行脚本后)。
我在我的 Exposed Methods 添加了一些新方法 RegisterEntityEvent 和 RegisterGlobalEvent,其中包含一些参数,以便我更具体地指定要将此方法添加到哪个事件中,它的设置如下:
public static void RegisterEntityMethod(string MethodName, string EntityType, string EventType) { EntityTypes[EntityType].Events[EventType] += CallLuaMethod(LuaEngine.LuaVM.GetFunction(name)); }///
那是个例子,未经测试
要调用它,您只需运行 LuaFunction.Call(Parameters);
这使得我可以从我的游戏中的事件处理程序中调用我的 Lua 脚本中的方法。
这并不像我想象中的那么容易,但是找到学习如何做到这一点的地方并不容易:D
这里是:http://forum.junowebdesign.com/net-programming/30025-luainterface-explained.html >