问题标签 [moonsharp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用 Lua 脚本返回的对象
我在“Conversion.lua”文件中有这个 lua 脚本:
我需要mmToin
在 C# 代码中使用包含在 object 中的函数conversion
。
如果函数不在对象内部,我将使用以下代码:
但是如果我把它放在一个对象中,我就不能使用它;我试过了:
但不工作。
如何mmToin
在 C# 代码中使用函数?谢谢。
c# - lua错误结束c#函数和父函数执行
当我尝试执行错误的 lua 代码时,它不仅会崩溃,而且会完全结束启动 lua 脚本的函数执行。
阅读以下代码的一些注意事项:prs() 是 Debug.Log()。prs("脚本完成"); 永远不会被调用。
此代码的问题
// script.Globals["getturnnumber"] = (Func<int>)getturnnumber;
是故障线路。然后错误消息是因为它找不到函数:
我的问题是: 为什么函数和父函数会停止执行?一点旁注:这不仅发生在我遇到的任何错误中。
作为我插入测试的例子;为什么 prs("脚本完成"); 不叫
这就是我的意思:
以及执行的 lua 脚本:
结尾
c# - 如何使用 setmetatable 围绕 C# 对象创建 Lua 包装类
我正在为我目前正在使用 C# 开发的游戏创建一些 UI,并希望将所有内容都暴露给 Lua,以便我的艺术家可以进行小的调整,而无需在代码中做任何事情。我正在使用 MoonSharp 将 Lua 脚本集成到我的项目中。
这是我目前的 UIElement 包装类:
BLU_UIElement是我的 C# 类,它通过 MoonSharp API 暴露给 Lua。它在直接处理对象时可以正常工作,并且具有 SetPos、SetColor 等功能。
UIElement旨在成为我在 Lua 中的“类”,以包装和扩展我的 C# 对象。
当我在脚本的其他地方实例化 UIElement 并尝试调用函数(例如 SetPos)时,它确实正确地进入了 __index 函数。然而,rawget 调用总是返回 nil。它似乎也不是特定于 BLU_UIElement 的。我已经尝试过一些非常简单的方法,比如在构造函数中添加一个字符串 ID 值并尝试在 __index 函数中获取它,但它也返回 nil。
我假设我只是在类或对象本身上错误地设置了亚稳态,但我不确定问题出在哪里。我一直在看这里:http ://lua-users.org/wiki/ObjectOrientationTutorial了解我做错了什么,但我没有任何反应。
我很欣赏这方面的任何指导,我已经看了几天没有弄清楚,并且在线搜索通常只显示与我已经在做的类似的代码。
lua - 有没有办法在 If 语句中为 Wait 类添加时间?
几天前我开始学习LUA,在桌面模拟器游戏中开始了我自己的项目,但是我碰壁了。我无法为等待课程增加时间。
这是我尝试过的一个例子:
我需要该功能检查第一部分,如果为真,请在 1 秒后执行第二部分。如果没有,请正常执行第二部分并跳过“i = i + 1”。我的问题是该函数同时执行所有操作。我知道我做错了什么,但我不知道是什么。有没有办法创建一些门来按顺序或类似的事情做所有事情?
lua - Accessing data found in another object/script
In Tabletop Simulator, how can I exchange information between objects?
Is there a way, for example, to create a global variable?
c# - 如何使用参数从 Lua / MoonSharp 脚本调用和等待异步 C# 方法?
这里有一个非常相似的问题:How to call & await async C# method from Lua / MoonSharp script?
但这并不能解释争论。我希望这个例如运行:
然后能够在lua中做这样的事情:
c# - 为什么 MoonSharp 占用了我这么多的内存?
我正在制作一个游戏,您可以在其中创建自己的 LUA 代码来创建自定义 NPC。但是,每个脚本占用大约 1 兆字节。更糟糕的是,当我重新创建这些脚本时,那些旧脚本并没有被删除。一个有 100 个实体的关卡会占用 100MB 的内存,如果玩家死了 10 次,那就是 1 GB!即使只是创建一个没有注册任何用户数据的脚本仍然占用 2MB。这是加载关卡后大约 5 秒的快照:
注意:脚本占内存的 10%。
我查看了其中一个快速堆栈对象,其中包含大约 130,000 个空对象。即使我只是调用 new Script() 并使用它而不调用任何函数,仍然有很多内存被用完!如何减少脚本的内存使用量?如果没有任何效果,我正在考虑切换到 NLua,如果它更好的话。