命名模型与 MonoBehaviours

Naming Models vs. MonoBehaviours

我最近 运行 遇到无法在单元测试中实例化 MonoBehaviour 的问题,因此我正在经历移动所有非 Unity 相关代码的过程(不访问任何 MonoBehaviour fields/methods) 的代码进入单独的模型 classes,然后在相应的 MonoBehaviour class 中使用。但是,我见过的所有 Unity 示例都在 MonoBehaviour class 中包含与给定游戏对象关联的所有代码。例如,游戏中的一个兽人在 Orc class 中有其代码,它源自 MonoBehaviour。因此,当我将单个 Orc MonoBehaviour class 分成兽人模型和兽人 MonoBehaviour 时,我正在努力命名我的 classes。命名 MonoBehaviour classes 与命名相应模型 class 时是否有最佳实践指南可遵循?

游戏就像任何其他应用程序一样可以 运行 测试。如果测试在游戏中毫无用处,Unity 就不会花费数小时来开发工具。

就像任何其他应用程序一样,某些部分无法测试,例如依赖框架的输入。在Unity中,关于引擎的所有方法如Update、Collision等都无法测试,但可以伪造。

Unity 中的其他情况是 MonoBehaviour,但您可以轻松绕过该博客 post:

http://blogs.unity3d.com/2014/07/28/unit-testing-at-the-speed-of-light-with-unity-test-tools/

基本上,MB class 获取所有与 Unity 相关的操作和回调。需要测试的逻辑进入自定义 class.

至于命名,您可以使用 XXXXController (MB) 和 XXXContainer (非 MB)。

在您的测试中,您专注于测试包含所有逻辑的 XXXContainer。