除了xamarin中的资产外,还有可加载的代码关卡

本文关键字:加载 代码 xamarin 除了 | 更新日期: 2023-09-27 18:07:02

我是Xamarin的新手,我已经搜索了SO和Google,但我没有找到正确的查询来得到我的答案。在flex中,我可以创建一个"模块",它可以有资产,代码等,在该模块中,我可以在主应用程序中实现一个基于接口的类,并在主应用程序加载后加载它。

在我编写的游戏中,我是这样加载关卡的。它工作得很好,因为核心应用程序是完全独立的,很少需要更新。

基本上假设主应用有一个IGameEngine接口,用于与它的任何交互,每个从云端加载并本地缓存的关卡(就像《愤怒的小鸟季节》的关卡)将有一个IGameEngine的执行,它可能与其他关卡相同或不同,这取决于该关卡所需的功能。

我将使用xamarin,因为我熟悉c#,并且需要针对所有平台,因此需要最小化代码来实现这一点。我也很可能会使用CocosSharp,因为它似乎是一个活跃的社区。

在Xamarin中我可以做类似的事情吗?如何?当我搜索Xamarin"模块"时,我得到了一百万个关于如何在编译器中包含模块的结果,显然我正在搜索错误的关键字。

很抱歉,一个有经验的用户可能在5秒内就能在谷歌上找到一个问题,但我不知道从哪里开始。我感谢所有来自社区的帮助!

除了xamarin中的资产外,还有可加载的代码关卡

就按需加载基于。net的程序集而言,这将无法在未运行完整Mono堆栈(包括JIT)的平台上工作。

。MonoTouch/Xam。iOS(和Xam)。Mac商店应用程序)不允许你动态加载基于CIL的程序集,因为这是苹果公司的政策,不会通过他们的应用程序审计,因此不允许JIT。所有代码(CIL程序集)必须本机编译(AOT)并预先打包在您的IPA中。当然,你可以动态下载关卡元数据和媒体内容。

现在,在Android这样的平台上,允许本地代码或Jit代码(即Java), Xamarin提供了完整的Mono堆栈,你可以动态地将一个新的程序集加载到你的进程中(通过网络下载或从flash本地下载),它将在运行中被Jit并执行。