SuperAPI AI 工具集

unity-composition-pattern

通用与其它

查看项目

更新于 10-16 01:30

技能介绍

用途:该技能用于在 Unity 中实现“组合优于继承”的设计模式,避免“继承地狱”。它把 RedStone、GoldStone 等大量具体子类替换为一个通用类,通过组合 ScriptableObject 资产来定义行为。

主要能力:

  1. Has-A 逻辑:对象通过成员(Configs)而非基类类型定义自身属性。
  2. SO 到运行时桥接:以 ScriptableObject 作为静态数据模板,生成动态运行时实例。
  3. 元组解构:用 C# ValueTuple 从组合对象返回多部分数据,无需额外样板代码。
  4. 层级扁平化:把差异下放到项目资产,大幅减少所需 C# 文件数量。

核心文件(最多 3 个): EntityConfigSO.cs.txt:创建可互换数据包的基类。 ModularEntity.cs.txt:持有一个或多个配置的通用容器。 CompositionExample.cs.txt:演示带元组解构的资源采集。

使用方式:

  1. 区分 Is-A 与 Has-A。反例:ElectricCar : Car : Vehicle(继承);正例:Vehicle has an EngineConfig(组合)。
  2. 多值返回(元组)。示例:public (int gold, int weight) Gather() => (10, 5); 调用方 var (g, w) = node.Gather();
  3. 通过 SO 实现策略:给同一个 ModularEntity 挂载不同的 EntityConfigSO 资产,即可在 Inspector 中改变其身份。

适用场景:Unity 项目中存在大量仅数据或行为略有差异的同类对象,希望减少类层级与文件数量时。

限制:资料未提供具体安装命令、依赖版本、收费信息或性能数据,暂未提供。