我怎样才能从Lua脚本中访问C++类成员函数?

我认为我想解决的问题对于大多数人来说应该很容易:) 假设我有一个类 Node,它有一个成员函数 setPosition(float x, float y, float z)。我想能够在Lua中定义一个Node类的变量,然后也可以使用setPosition()函数。 我知道Lua更适用于C而不是C++,并且在处理C++类方面有一些问题,但我也知道这是可以实现的。

原文链接 https://stackoverflow.com/questions/5767321

点赞
stackoverflow用户4323
stackoverflow用户4323

我会使用 Luabind 来做这件事情。使用它,你可以轻松地将 C++ 类绑定到 Lua 中,从而可以在 Lua 中创建、访问和修改它们。在 C++ 中编写的代码大致如下:

module(L) [
    class_<Node>
        .def(constructor<>)
        .def("setPosition", &Node::setPosition)
];

然后你可以在 Lua 中这样说:

node = Node()
node:setPosition(x, y, z)

你还可以进行绑定,使得 Lua 更加自然,并且支持这些功能:

node1 = Node(x, y, z)
node2 = Node()
node2.position = { x, y, z }
2011-04-23 23:16:06