これは私には少し奇妙なアーキテクチャのようです.2つの別々のシーングラフの同期を維持するために多くの作業を行う必要があり、おそらくそれらを完全に分離した状態に保つことは不可能であることに気付くでしょう(質問で説明している状況は例ですが、もっとたくさんあります.....)
単一のゲーム オブジェクト グラフについて考えることをお勧めします。オブジェクトごとに物理戦略とレンダリング戦略を引き続き持つことができますが、個別のオブジェクト グラフではなく、ゲーム オブジェクトへの「プラグイン」として見ることをお勧めします。このようにして、ゲーム オブジェクトは、物理コンポーネントとレンダリング コンポーネントの両方からアクセスされる位置/回転ベクトルを持つことができます。
単一のゲーム オブジェクト グラフへの再構築を好まない場合の代替手段は、位置/回転情報を別の構造 (ベクトルの大きな配列など) に分離することです。Physics オブジェクトと Render オブジェクトの両方が、この構造へのアクセスを共有できます。
これは次のことを意味します。
- Physics オブジェクトと Render オブジェクトの両方が、配列内の自身の位置のインデックスを知る必要があります (インデックスを直接格納するか、何らかの形式のハッシュ ルックアップによって)。
- Physics オブジェクトと Render オブジェクトの両方が、同じ位置/回転形式に満足している必要があります。
- オブジェクトが作成/破棄されると、追加の簿記が必要になります
- たとえば、レンダリング中に新しい Physics オブジェクトが追加された場合はどうなるでしょうか。
全体として、これがあなたに多くの利益をもたらすかどうかはわかりません....しかし、サードパーティの物理ライブラリの設計など、他の制約がある場合は理にかなっているかもしれません.