C# LuaInterface / NLua:如何规避为多个对象编译同一脚本的问题?

我的系统由实体组成,这些实体可能包含唯一的名称和 Lua 脚本,在实体生成时编译,同时可能有多个相同的实体同时生成。

目前,我为每个实体实例化一个新的 NLua.Lua() 并重新编译脚本,这只需要大约 5-10 毫秒的时间,但是如果同时创建了 100 个完全相同的实体,则主线程将冻结 0.5-1 秒。我无法让所有实体引用单个预编译的上下文。如果一个实体受到伤害,它们都会认为自己正在受到伤害。

我试图想出一个解决方案,在相似的具有相同 Lua 脚本的实体中,不需要为每个实体单独编译上下文,但仍然保持其自己的唯一脚本。这可能吗?

点赞
用户4962485
用户4962485

我可以建议使用表格吗?

如下所示,创建一个实体表格,其中每个实体都有单独的值,以便在不使用NLua.Lua()的情况下共享相同的空间。

(cannot comment, so excuse this answer which should've been a comment)
2015-06-06 13:24:38