使用带有Unity Engine的MVVM模式作为前端

时间:2017-02-25 22:26:25

标签: c# design-patterns unity3d mvvm

我计划制作一些帮助我在家或从其他地方组织任务的应用程序。为此,我需要一个数据库服务器(一个在家运行的虚拟服务器),一个后端部分(业务逻辑)和前端(视图)。在学校我们通过WPF学习了MVVM,但坦率地说,我只在明确要求时使用它。 像

这样有利于Unity的好处很多
  • 艺术家友善
  • 可以编译为移动,网络和桌面
  • 快速发展(至少在我的情况下)
  • 我可以利用很多内置功能。<​​/ li>

现在,即使我会像这样制作一个简单的应用程序,有时我可能想要扩展它,改进它或完全改变一些组件。 我知道如何在WPF中使用MVVM,但我对Unity实现只有一些模糊的想法,我希望有人熟练地概述。

前端(Unity)将负责声音管理,精美动画和UI本身。但UI按钮事件无法直接访问数据库,所以我想构建一些Bridge Classes。假设我想删除提醒,这是一个简单的例子。在OnButtonClicked()方法中,我只需要调用BridgeClass的{​​{1}},在该方法中,后端解决方案实际上会找到PleaseDeleteThis(MyReminder)的提醒并从数据库中删除,然后将id标志发送回前端应用程序,以便我知道它是成功的。 我想到的是,使用这些桥接类我不必担心如果我更改数据库服务器或前端会发生什么,因为他们必须知道的是everything all right <进行通信/ em>的。我知道这个例子已经过度简化了,但是这个关于组件完整性和MVVM模式的可行性有多大?

1 个答案:

答案 0 :(得分:5)

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

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

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

MVVM大概是19:18标记虽然我建议观看整个事情,因为那里还有其他很棒的东西。