你好!
我正在Unity 6中开发一款多人游戏,采用分层架构,但我还没有完全理解各层的边界。其中一个架构目标是保持领域层独立于引擎。
然而,我遇到了一个关于Unity值类型的问题,特别是Color、Vector3、Quaternion等。
一种观点认为,这些只是值结构体,因此在领域层中使用它们是无害的
public Color PlayerColor { get; },
但是,那些操作这些值的Unity API呢?
public static string ToHex(Color color) => "#" + ColorUtility.ToHtmlStringRGB(color);
所以我想知道:
- 引用Unity值类型与调用Unity工具API之间是否存在有意义的架构差异?
- 你会允许在领域层中使用
ColorUtility吗? - 如果不会,你会创建一个领域原生的
Color/RgbaColor类型,并将所有Unity转换逻辑保持在领域层之外吗?(这可能会导致在领域层中重新创建大量新类型) - 或者,对于Unity项目来说,严格的“领域层零引用UnityEngine”规则是否过于苛刻?
正如我前面所说,我正在理解分层架构背后的概念,并想知道你们是如何处理这个问题的。
谢谢大家!
评论 (0)