如何在 Lua 脚本中从另一个 C++ 对象获取对 C++ 对象的引用?我真的不知道如何正确地用文字来总结,所以让我先用一个 Lua 例子来详细说明:
function doSomething()
compo = a:getComponent()
compo:setVariable(0)
end
a 是一个 C++ 对象,函数 getComponent 返回一个指针:
// inside A.h
Component* A::getComponent();
似乎问题在于getComponent()
将 Component 对象的副本传递给 Lua,而不是引用。我对每个返回指针的函数都遇到了同样的问题,Lua 无法修改原始对象。
对象 a 似乎工作正常,如果我从 Lua 中修改一个变量,它的结果会反映在 C++ 中。A 和 component 都已经绑定到 Lua,以及所需的方法。
我是否在语法上遗漏了一些东西,或者还有更多的东西?
我正在使用 luabind、Lua 5.1 和 MinGW。感谢您提前提供任何帮助。
编辑
这是 luabind 代码。我总结了它,因为还有一堆与问题无关的其他绑定:
luabind::class_<A>("A")
.def("getComponent", &A::getComponent)