我正在使用LuaBind在我的遊戲中實現Lua腳本,而我不清楚的其中一件事是重新加載活動遊戲中的腳本。如何鏈接到Lua中的回調函數,以便在重新加載腳本時更新回調函數?
目前,使用LuaBind C++類luabind::object
,我直接在使用它們的類中保存對Lua回調的引用。然後,我可以使用luabind::call_function
使用該對象來調用C++代碼中的Lua代碼。
我還沒有測試過,但我的假設是,如果我重新加載腳本,那麼所有的功能將被重新定義,但對舊功能的引用仍將以luabind::object
的形式存在C++代碼。我希望能夠替換掉新的舊版本,而無需爲遊戲中的每個腳本鉤子手動進行管理。
如何最好地改變這個過程,以便過程起作用?
我的第一個想法是不直接保存對函數的引用,而是可以保存函數名稱,並在每次調用它時都按名稱獲取函數。我正在尋找更好的想法!
-1:[堆棧溢出不是交叉發佈友好](http://meta.stackexchange.com/a/129890/164572) –