0

为了制作最好的武器系统(目前在 UE4 中工作),我一直在将我的所有代码移动到组件中。

public class Weapon
{
    public FiringComponent firing;

    ... 
}

public class FiringComponent
{
    public void Begin(){ ... }
}

public class FullAutoComponent : FiringComponent
{
    //variables

    public void Fire(){ ... }
}

public class SemiAutoComponent : FiringComponent
{
    //variables

    public void Fire(){ ... }
}

这种方法的问题在于,大多数触发组件最终共享了它们实现“触发”行为的很大一部分,我理解这不是很好。这导致我将很多行为转移到基类中,在本例中是触发组件,这破坏了组合模式给我带来的好处

你们将如何使用没有代码重复的组合来实现武器系统?我到底做错了什么让组件共享这么多的实现代码?

另外,我可能在这篇文章中没有说清楚,但这是系统的第二次修订,第一次是使用组件的接口,但是代码的重复使我不得不将其中的一些移动到基类中. 尽管如此,还是很糟糕。

4

0 回答 0