【发布时间】:2013-01-24 01:29:29
【问题描述】:
由于这很难解释,让我从图表开始:
理论讲了这么多,但我将如何实际实施呢?这甚至可能/可行吗?
想到的一些问题:
- 如何将脚本实际加载到对象中以供 ScriptManager 保存?
- 如何公开某些功能?我不希望他们对我的程序拥有最终的权力,只有一个域。
- 脚本如何知道例如EngineClass?我应该在脚本中使用吗?那不需要是脚本路径中的程序集的副本吗?
- 我听说过 MEF,这可能吗?它似乎更适合插件。
- 如何编译脚本?
当然,我知道您无法回答所有这些问题或为我实现整个引擎。但我需要关于如何做的指示,我一直在研究这个概念很长一段时间。
提前感谢您的任何回答。
【问题讨论】:
-
你看过 Lua 吗?显然有一些库允许您使用 .Net 中的 Lua。根据您在脚本中需要的功能,如果您的用户还没有 C# / .Net 背景,这可能更容易实现和更容易。
-
LuaInterface, Lua。我自己没用过,但是效果很好。
-
@Lobo 感谢您的链接。可悲的是 LuaInterface 似乎依赖于 VisualC++ 库,但我想让所有东西都跨平台(在 Mono 上运行)
-
有使用 Python 的引擎,从 .Net 搜索 IronPython 或 JavaScript,我认为至少可以从 Mono 使用 IronPython。再说一次,我自己没有经验。