我理解Luabind我可以公开类,然后可以在lua中创建这些类的实例。
module[L_state]
[
class_<Player>("Player")
.def(constructor<>())
.def("Update",&Player::Update)
];
test.lua
player = Player()
player:Update()
但是,如果我想在C ++中创建该播放器实例,因为我想在C ++中调用它的成员,但我也希望将相同的播放器实例暴露给Lua,这样它仍然可以调用它的函数,如:
player:Update()
答案 0 :(得分:2)
您可以通过luabind将值推送到Lua堆栈:
Player p;
luabind::globals(L)["player"] = p;
P.S。注意对象的生命周期和所有权问题。 LuaBridge手册可以帮助您规划共享对象生存期管理策略。 + LuaBind生命周期政策的更新LuaBind manual。