これらの変更によりパフォーマンスを改善する新しい可能性がいくつか見込まれます。ネイティブメモリヒープのどこかに割り当てられていました。そのオブジェクトはネイティブメモリヒープ内であればどこでも存在する可能性がありました。互いに近くに割り当てられる保証はありませんでした。その親の近くに割り当てられる保証もありませんでした。ヒエラルキーを直線的に反復処理するときに、メモリの隣接するリージョンを直線的に反復処理していなかったことを意味します。キャッシュまたはメインメモリからフェッチされるのを待機するときにプロセッサーが繰り返し停止するのはこれが原因でした。受け取る必要がありました。更新する必要があります。このメッセージの発行は回避することができず、特に中身のないメッセージの発行を防ぐ方法が組み込まれていなかったため、パフォーマンスに多くの問題を引き起こしました。送信するのを回避する方法は用意されていませんでした。時間の無駄になりました。変更をバッチで処理することです。ポジションと回転を一度にキャプチャし、そのフレームにわたってそれらのキャッシュされた値を使用して更新することです。至るまで有効なアドバイスです。置き換えられています。ネイティブメモリヒープ内のあらゆる場所に配置される可能性があった孤立したオブジェクトではなくなりました。隣接するデータバッファーによって表現されます。すべてのデータが含まれます。関するメタデータも格納されます。このメタデータにはビットマスクが含まれます。最後に「クリーン」とマークされてからポジション、回転、スケールが変更されているかどうかを示します。変更に関係するかどうかを追跡するビットマスクも含まれます。一覧を作成できるようになりました。一覧をフェッチします。反復処理させてはいけません。ほとんどないため、これは非常に低速になる可能性があります。構造の一覧を追跡します。システムを使用して登録します。対して反復処理を行います。一覧に追加され、リクエストを行っているシステムにこの一覧が返されます。変更をより詳細なレベルで追跡できます。つの意味合いもあります。構造を調査するときに行う必要がある作業を分割します。変更の一覧をリクエストする必要があるときに毎回少しのオーバーヘッドを追加します。回、それらが実行される直前にリクエストします。アニメーションシステムはシーン内のアクティブなアニメーターのすべてを評価する直前に更新をリクエストします。同様に、レンダリングシステムは、視覚可能なオブジェクトの一覧のカリングを開始する前に、シーン内のすべてのアクティブなレンダラーの更新をリクエストします。場合は少し異なります。更新は同期的に行われていました。シーンが即座に更新されました。世界に確実に反映されました。これは必要な変更であった一方、問題も発生していた可能性がありました。世界に適用する必要がありました。呼び出す方法によっては、コストがかかる可能性がありました。よって制御されています。プロパティを設定することで変更できます。システムに対してのみ実行します。つの方法で対応できます。「false」に設定する方法です。シーンの更新によるスパイクを排除します。シーンに同期されません。コライダーをヒットしない可能性があります。シーンがまだそのコライダーの新しいポジションに更新されていないことが原因です。自動同期を無効にすることが問題の原因とならないようゲームを慎重にテストしてください。呼び出すことができます。低速であるため、フレームごとに複数回呼び出すことはお勧めしません。デフォルトで「false」に設定されます。シーンに対してクエリを実行して更新する順序を新しいシステムに合わせて調整する方法です。変更をチェックします。クエリに追加されるオーバーヘッドはほとんどありません。つのバッチで適用できます。呼び出しを混在させないでください、この例はその違いを示します。ヒエラルキーが小規模なもののみであるときはより顕著になります。呼ばれるシステムを使用します。独自のスレッドで実行され、それらはオーディオのデコードとミキシングを担います。オーディオの再生は完全に無料ではありません。シーン内でアクティブな各オーディオソースのメインスレッドでいくつかの処理が実行されます。メインおよびレンダリングスレッドがプロセッサーのコアを奪い合うことがあります。アクティブなすべてのオーディオソースをループします。そのオーディオソースとアクティブなオーディオリスナー間の距離、およびその他いくつかのパラメーターを計算します。このデータはボリュームの減衰、ドップラーシフト、その他個々のオーディオソースに影響を及ぼす可能性のある効果を計算するために使用されます。一般的な問題はオーディオソースの「Mute」チェックボックスによるものです。設定するとミュートされたオーディオソースに関連する演算が排除されると考えるかもしれませんが、実際には排除されません。代わりに、「Mute」設定は距離チェックなど、その他すべての音量関連の計算が実行された後に、単純に音量パラメーターをゼロに固定します。