c# - 使用 MVVM 模式和 Unity 引擎作为前端

标签 c# design-patterns unity3d mvvm

<分区>

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

Unity 有很多好处,比如

  • 艺术家友好
  • 可以编译到移动、网络和桌面
  • 快速发展(至少对我而言)
  • 有很多我可以利用的内置功能。<​​/li>

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

前端 (Unity) 将负责声音管理、精美动画和 UI 本身。但是UI按钮事件不能直接访问数据库,所以我想到了构建一些桥接类。举个简单的例子,假设我想删除一个提醒。在 OnButtonClicked() 方法中,我将调用 BridgeClassPleaseDeleteThis(MyReminder) 并且在该方法内部有实际找到的后端解决方案该提醒由 id 并从数据库中删除,然后将 everything all right 标志发送回前端应用程序,因此我知道它已成功。

我想到的是,使用这些桥接类,我不必担心如果我更改数据库服务器或前端会发生什么,因为他们所需要知道的就是通信桥梁。我知道这个例子过于简单了,但是这个例子在组件完整性和 MVVM 模式方面有多可行?

最佳答案

MVVM 已被 AAA 软件公司成功用于构建游戏。 Shipbreakers(又名 Homeworld: Deserts of Kharak)的制造商编写了他们的代码,使 View 成为 MonoBehavor 我相信,VM 和 M 是独立于外部编写的 POCO 类到 Unity 以加快开发速度。他们可以拥有自己的 View ,用于在 Unity 外部进行原型(prototype)制作。

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

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

MVVM 大约在 19:18 处请注意,尽管我确实建议您观看整部影片,因为其中还有一些其他精彩内容。

关于c# - 使用 MVVM 模式和 Unity 引擎作为前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42462314/

相关文章:

c# - 关于在 C# 中实现 'Bridge' 模式

design-patterns - 使用存储库模式处理集合的说明

C# - 无法覆盖 ==

c# - 从 Entity Framework 发送阿拉伯语单词时存储过程不返回结果

c# - 尝试将代码块从 C# 转换为 Java (Android)

c# - 使用 Compression.DeflateStream 压缩和解压缩 Stream

c++ - 如何让人们相信一个有 11975 行代码的类是不好的? (不是吗?)

c# - 如何找到贝塞尔曲线的控制点?

unity3d - 在 switch block 内返回会产生 "unreachable code"警告

c# - 使用 HttpClient 时记录请求/响应消息