如何让Lua使用我的C++工厂方法创建对象?

我发现有些类似的问题,但都不适合我的情况,而且我对这个C++ - Lua绑定还太新了。**(我使用的是LuaBridge。)**

我想为我的GameObject(是的,这是一个游戏引擎)编写Lua脚本,并且目前正在定义脚本的 _"C++接口"_。

我的问题是我想创建新的GameObject,目前是通过调用Scene的CreateGameObject方法来完成的,该方法

  • 例如检查是否可创建新的GameObject。(例如名称重复)

  • 如果一切正确,它将创建一个新的GameObject,将其放置在容器中,并返回指向其的指针。

我的问题是:

  • 如何将此方法绑定到Lua对象的构造函数,以后可以使用这个新的Lua对象的以前绑定的函数吗?

    • (我将C++ GameObject的方法绑定到了Lua的GameObject函数)
  • 还是我应该重构这个工厂方法,像这样:

    • 不是使用Scene的CreateGameObject方法,而是使用 new GameObject(...);

    • GameObject的构造函数调用场景的GameObjectConstructed方法,该方法将处理以前与场景相关的检查,元素插入等。

    • 我认为这个版本是可行的,但现在没有创建GameObject的预检查,而是后检查。

我希望我的问题是可以理解的。提前感谢!

点赞