最高の武器システム (現在は 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(){ ... }
}
このアプローチの問題は、ほとんどの起動コンポーネントが「起動」動作の実装の大部分を共有することになることです。これはあまり良くないと私は理解しています。これにより、多くの動作を基本クラス (この場合は発火コンポーネント) に移動することになりました。これにより、構成パターンが私に与えていた利点が失われました。
コードの重複がない構成を使用して武器システムをどのように実装しますか? コンポーネントにその量の実装コードを共有させているのは、正確には何ですか?
また、この投稿では明確にしなかったかもしれませんが、これはシステムの 2 番目のリビジョンです。最初のリビジョンはコンポーネントのインターフェイスを使用していましたが、コードが重複しているため、その一部を基本クラスに移動する必要がありました。 . とはいえ、まずい。