1

GameObject私のコンポーネント ベースのゲーム エンジンの抽象的な実装は次のとおりです。

ゲームオブジェクト

  • 一意のID
  • isActive フラグ
  • コンポーネントの配列

コンポーネントベースの設計について読んでいて、気になった点の 1 つは、配列の線形トラバーサルがキャッシュによって高速であることです。そのため、基本的な配列を使用してエンティティ/ゲーム オブジェクトを保持することにしました。

もう 1 つ気になったのは、一部のリソースがコンポーネントをゲーム オブジェクトから切り離していたことです。彼らが代わりに行ったのは、エンティティ マネージャー内にマップを用意することでした。マップには、キーとしてゲーム オブジェクトがあり、値としてコンポーネントの配列がありました。この場合、AGameObjectは ID しか持っていませんでした。

GameObjectクラス内にコンポーネントを配置する代わりに、ゲーム オブジェクトをコンポーネントにアタッチするマップを使用する利点 (パフォーマンスおよび/または設計上の観点から) はありますか?

さらに、頻繁なメモリ割り当てを避けるために、 GameObjects はオブジェクトからプール (リサイクル) されます。Pool

4

2 に答える 2