使用MVVM模式与Unity引擎作为前端

4
我计划制作一些应用程序,让我可以在家或其他地方组织任务。为此,我需要一个数据库服务器(在家中运行的虚拟服务器),后端部分(业务逻辑)和前端(视图)。在学校里,我们学习了通过WPF实现MVVM,但坦率地说,只有在明确要求时才使用它。
Unity有很多优点,比如:
- 对艺术家友好 - 可以编译到移动设备、Web和桌面 - 开发速度快(至少在我的情况下) - 有很多内置功能可以利用
即使我要做一个像这样简单的应用程序,有时候我可能想要扩展它、改进它或完全更换一些组件。我知道如何在WPF中使用MVVM,但对于Unity的实现,我只有一些模糊的想法,希望有经验的人能够概述一下。
前端(Unity)将负责声音管理、华丽的动画和UI本身。但是UI按钮事件无法直接访问数据库,因此我考虑构建一些桥接类。以删除“提醒”为例。在一个OnButtonClicked()方法中,我只需调用BridgeClassPleaseDeleteThis(MyReminder),在该方法中有后端解决方案,实际上通过id查找该提醒并从数据库中删除,然后将一个“一切正常”的标志发送回前端应用程序,以便我知道它成功了。
我的想法是,使用这些桥接类,我不必担心如果我更改了数据库服务器或前端会发生什么,因为它们只需要知道如何与桥接进行通信。我知道这个例子过于简单,但就组件完整性和MVVM模式而言,这个例子可行吗?

有比这种方式更好的选择...Xamarin、Cordova和许多其他选择。 - Matías Fidemraizer
是的,但我可能想在移动设备以及PC/Windows、Linux或其他平台上使用我的应用程序。此外,我还不太熟悉这些平台。 - agiro
此答案演示了如何在Unity3d中使用MVVM架构与async-await:https://stackoverflow.com/a/75121349/8304176。 - Junaid Pathan
1个回答

10

MVVM已经被AAA软件公司成功地用于构建游戏。 Shipbreakers (也称为Homeworld: Deserts of Kharak) 的制作者编写了他们的代码,使得View成为一个MonoBehavor,我相信VM和M是独立于Unity编写的POCO类,以加快开发速度。他们可以拥有自己的视图用于外部Unity原型设计。

他们还为Unity编写了自己的调试可视化程序和属性编辑器。

https://www.youtube.com/watch?v=q9aeNtKKXeo

MVVM大约在19:18处,但我建议您观看整个视频,因为其中还有其他很棒的东西。


谢谢,打算观看那个视频。 - agiro
1
@agiro 您非常受欢迎,先生。这是很好的观看 :) - user585968

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接