我已经进行了无数次尝试来使它正常工作,但我所做的一切都会给我带来运行时错误。我一直在尝试让 Assets 管理器来管理我的游戏引擎的内容,并且我正在使用 lua 和 luabind 编写脚本。到目前为止,编译所有内容、绑定(bind)类和变量以及从 lua 取回基本变量都没有问题。
我的问题是我正在使用 std::vector 来存储我的 Assets 类的实例,而 vector 似乎与 luabind 不兼容。我知道我需要这个 vector ,因为我的 C++ 程序将使用它进行渲染和其他操作
当我绑定(bind)我的管理器类和变量(包括包含我的 Assets 类的 vector )时,一切都编译并运行良好。在我的 lua 脚本中,我可以成功创建新对象,但是当我尝试访问它们时,出现运行时错误。
总结一下:
我有一个类保存游戏对象的信息或其他一些数据的信息。
我有另一个包含 Assets 类别 vector 的类。
当我尝试像访问常规 lua 表一样访问此 vector 时,出现运行时错误。
那么我应该在 C++ 和 luabind 中做什么才能允许我修改我的 Assets 管理器类中的类?
最佳答案
您可能需要使用一些相关方法来绑定(bind) vector 类型本身,或者尝试 Luabind 的 return_stl_iterator
,它提供了对 STL 兼容容器的迭代(但不是索引)。
如果您需要更多帮助,您的绑定(bind)及其类型的代码将会很有用。
关于c++ - 如何使用 Luabind 和 C++ 创建 Assets 管理类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2361061/