私は現在のゲームではかなりうまくいくコンポジットデザインを使用しています。すべてのゲームオブジェクトはGameObjectのインスタンスであるか、直接の子孫です...オブジェクトの中には、武器などの特定のインターフェイスを実装しているため、他のオブジェクトによって「使用」されたり、しかし、私は現時点ではbox2dをゲームに統合しようとしていますが、この場合は構成に問題があります。たとえば、スプライトはスプライトレンダリングコンポーネントでレンダリングされ、素材などのオブジェクトプロパティはレンダリング時に適用されますが、投射物などの場合に適用されます。合成と投射物
私は基本的に同じものを2度コードする必要があることを発見しています。武器は常に発射物を所有し、そのような方法で直接呼び出すため、基本発射は 'onFire'、 'onExpire'などのメソッドを持ちます。しかし、そのデータを発射体物理コンポーネントと同期しようとすると、時間が無駄になるようです。このケースでは、おそらく、発射物物理コンポーネントとしてonCollisionイベントを処理し、ポジションを更新する物理ボディを自分自身の「own」ボディにする必要があるはずです。今私はもちろんそうすることで、発射体オブジェクトをbox2dと明示的に結合していますが、私の必要に応じて、それはうまくいくでしょう。
私は実際には今のところ、他のオブジェクトが使用するのと同じコンポジットデザインを作成しようとして多くの問題を抱えているため、入力を希望します。
あなたが言ったように、弾丸は本体を作りました。しかし、構成を使用した理由は主にすべてのオブジェクトがどこでも型キャストを行う必要なしに同じパイプラインを通過できるようになったことです。サブシステムを使用して、オブジェクトのコンポーネントを、各タイプを特に扱うシステムによって登録および更新できるようにしました。 – Xealgo