AStar.Navigator
説明
モデルのA*ナビゲータに関連するデータおよびメソッドが利用可能になります。
プロパティ
travelers | A*ネットワークのメンバーである移動者のセットを参照します。 |
メソッド
addDynamicBarrier | ナビゲーターのA*グリッドネットワークに動的なバリアを追加します。 |
getCell | 特定のモデルの場所と関連付けられたセルを取得します。 |
getLocation | 特定のAStar.Cellと関連付けられたモデルの場所を取得します。 |
removeDynamicBarrier | addDynamicBarrier()により追加された動的なバリアを削除します。 |
詳細
AStar.Navigator.travelers
readonly travelers
説明
A*ネットワークのメンバーである移動者のセットを参照します。
このプロパティは、グリッド変更などが起きたとき、ナビゲーターの移動者のそれぞれを訪問できるようにするため用意されています。
AStar.Navigator.addDynamicBarrier()
Variant addDynamicBarrier( Variant val , int skipOnChange = 0 ) |
treenode addDynamicBarrier( Vec3 location , Vec3 size , Vec3 rotation , int skipOnChange = 0 ) |
パラメータ
val | 追加するバリアを含む値。この値はオブジェクトへの参照、オブジェクトへの参照の配列、またはメンバーの3x3配列です。オブジェクトの場合、動的なバリアとしてオブジェクトを追加します。オブジェクトの配列の場合、配列の各オブジェクトをバリアとして追加します。3x3の数字の配列なら、配列から3つのVec3を構築し、Vec3ベースのオーバーロードに転送します。 |
location | 追加するバリアの位置。 |
size | 追加するバリアのサイズ。 |
rotation | 追加するバリアの回転角。 |
skipOnChange | オプション。1なら、ナビゲーターのOnGridChangeイベントへの呼び出しはスキップされます。 |
説明
ナビゲーターのA*グリッドネットワークに動的なバリアを追加します。
このメソッドにより、シミュレーションの実行時にA*パスの計算メカニズムを動的に変更できます。この方法は、標準のバリアの条件付きルールと比べて、動的に作成されたバリアや、シミュレーション中に移動するバリアの追加や削除を行える柔軟性があります。このメソッドを呼び出すと、オブジェクトの現在の位置をバリアとしてナビゲーショングリッドに統合できます。
このメソッドを呼び出すと、パスの計算アルゴリズムにのみ影響を及ぼします。パス上でアクティブに移動しているオブジェクトのパスには影響しません。バリアの追加後にパスの再計算を行うには、プリエンプトを行って移動オペレーションを再起動させる必要があります。アクティブな移動者のパスが動的なバリアによってブロックされたかどうかは、AStar.Traveler(object).travelPath.isBlocked()を呼び出して照会できます。
戻り値は、追加された動的なバリアを表すツリーノードへの参照です。このメソッドにオブジェクト参照の配列を渡すと、ツリーノードの配列が返されます。バリアが破棄または移動された後で、removeDynamicBarrier()を呼び出し、このメソッドから返された値を渡して、削除してください。
AStar.Navigator.getCell()
AStar.Cell getCell( Vec3 modelLoc ) |
パラメータ
modelLoc | 対象となるモデルの場所。 |
説明
特定のモデルの場所と関連付けられたセルを取得します。
AStar.Cell cell = AStar.navigator.getCell(Vec3(10, 3, 0));
AStar.Navigator.getLocation()
Vec3 getLocation( AStar.Cell cell ) |
パラメータ
cell | 対象となるセル。 |
説明
特定のAStar.Cellと関連付けられたモデルの場所を取得します。
Vec3 loc = AStar.navigator.getLocation(traveler.travelPath[1].cell);
AStar.Navigator.removeDynamicBarrier()
removeDynamicBarrier( Variant barrier ) |
パラメータ
barrier | addDynamicBarrier()への呼び出しから返された値。 |
説明
addDynamicBarrier()により追加された動的なバリアを削除します。