【发布时间】:2013-01-13 01:06:30
【问题描述】:
有谁知道如何编写一个返回 LuaTable 值的 C# 函数(例如 {1 = "example1", 2 = 234, "foo" = "Foo Example"}?
我测试过的所有类型都返回LuaUserData 值,这些值是不可配对/可配对的。
提前致谢。
--更新-- 在我看来,最接近 luaTable 的类型是 ListDictionary:
[LuaFunc(Name = "table", Desc = "returns test LuaTable", Params = new string[] { })]
public System.Collections.Specialized.ListDictionary table()
{
var k = new System.Collections.Specialized.ListDictionary(){
{"1",1},
{2,"2"}
};
return k;
}
但在 Lua 中仍被识别为 LuaUserData,无法配对/配对
【问题讨论】:
-
请提供源示例,了解您当前如何在 C# 端构建表及其值。你在使用什么函数,你是如何使用 Lua 虚拟栈的?
-
您可能还会发现这篇堆栈溢出文章很有帮助。 stackoverflow.com/questions/10941563/…
-
我已经找到了这种方式,但我正在寻找c#解决方案。
-
不确定您所说的“c# 解决方案”是什么意思,因为 stackoverflow 文章是 C#。问题是 Lua 引擎是用 C 编程语言编写的,所以你必须有一个 C# 到 C 的接口才能在两者之间进行编组和转换。在 C 或 C++ 中,直接使用 Lua 引擎中提供的函数就可以了,这些函数允许您在 Lua 虚拟堆栈上构建表等,然后调用将构建的表提供给 Lua 引擎的函数。
标签: c# lua luainterface