カスタム NavGraph を追加することで、地形用に作成した NavMesh を拡張することもできます。多くの場合、これらの NavGraph の配置は、ゲームレベルのデザインで暗黙的に使用されます。この場合、NavGraph は NavData 生成処理中に生成されます。これは通常、レベル用の NavMesh を生成した後に実行する後処理フェーズになります。ただし、実行時に動的に NavGraph を作成してスポーンすることもできます。たとえば、ゲーム内の NPC が任意の場所に移動できるはしごを使用できるようにするには、この方法を使用しなければならないことがあります。
次のように、NavGraphBlobBuilder オブジェクトを使用して NavGraph を作成できます。
同じ NavData オブジェクトに複数の NavGraph を追加することができます。ただし NavGraph は、NavMesh を既に含んでいる NavData オブジェクトに追加したり、Database に既に追加されている NavData オブジェクトに追加することはできません。
データ生成のプロセスの中で NavGraph を作成する場合は、データ生成システムで自動作成された NavData オブジェクトに対して行う方法と同じように、新しい NavData オブジェクトをパッケージ化する必要があります。
NavGraph を実行時に動的に作成する場合、事前生成されたデータが含まれている NavData オブジェクトの場合と同じ方法で、Database に NavData オブジェクトを追加できます。
NavData::AddToDatabaseImmediate() または NavData::AddToDatabaseAsync() を呼び出します。
データ生成処理の後処理フェーズ中に NavGraph を作成する方法を示すコード サンプルについては、Tutorial_Generation_postProcess.cpp ファイルを参照してください。
NavGraph をオンザフライで作成し追加する方法を示すコード サンプルについては、Tutorial_NavTag.cpp ファイルを参照してください。