以下是我目前拥有的组件:
- StatType 枚举,包含4种不同的属性(例如:生命值)
- StatProfile 资源(我从 ScriptableObject 类创建的自定义资源),包含一个 StatType、最大值和当前(初始)值的结构体
- StatManager(MonoBehaviour 脚本),包含一个可以通过 Inspector 分配的 StatProfile 属性。StatManager 还包含两个私有 Dictionary
,分别存储最大值和当前值。 - IStatBehavior 接口
- 实现该接口的行为类,每种属性类型/行为对应一个(例如:HealthBehavior)
现在我困惑的是如何将 StatManager 中的 HealthBehavior 与 Health 属性关联起来。我尝试为 StatBehaviors 创建自定义资源,但由于它实现了接口,字段在 Inspector 中是空白/不可编辑的。我无法添加每个脚本并遍历行为列表,将每个行为与对应的属性关联。有人有见解吗?
更多背景:我选择这种方法(而不是将每个属性行为作为独立组件添加到玩家对象上),是因为我已经有13个脚本组件:移动、跳跃、输入处理、物品收集、能力管理器、(当前)7个能力脚本,以及现在的 StatManager。我已经知道应该将我的能力行为更改为实现接口等方法。但我不想在玩家对象上堆积更多脚本。
我还打算让不同的敌人拥有不同的属性(这意味着不同的 StatProfile),并且每个角色拥有一个 StatManager 作为主要枢纽,似乎是解耦数据与行为的最清晰方法。
评论 (0)