動的な障害物やプレーヤーが作った障害物のためのA *パスファインディング?


11

こんにちは、Unity 5でTDを作成しています。Pathfindingで助けが必要です。

私は、AIにArons A *パスファインディングを使用して、動的オブジェクトを使用し、実行時にパスを更新できるようにします。ただし、私のゲームでは、プレイヤーが特別なタレットで手先をブロックできるようにして、目的地に行く代わりに手下に「ブロックタワー」を強制的に攻撃させます。

どうすればこのようなことを達成できますか?

より明確にするための画像: ここに画像の説明を入力してください

回答:


22

私はAaronによるA *の特定の実装を見ていませんが、通常のA *では、「ブロックタワー」を通過可能な地形として含めることができますが、「コスト」が通常のタイルよりもはるかに高くなるようにヒューリスティックを更新できます(そのため、 AIは、ブロックを破壊して続行する方が簡単なのか、ブロックされていないパスを経由するのが簡単なのかを評価します)。

次に、AIを更新して、敵が通常のタイルから「ブロックタワータイル」に移動しようとしたときに、破壊されるまで自動的に攻撃するようにする必要があります。


8
+1差がある場合は、Xの数とミニオンのタイプが破壊にかかる時間に応じて、ブロッキングタワーのコストを計算する必要があると付け加えます。最も低いレベルのミニオンがタワーを破壊するのに5秒かかるが、1つのスーパーミニオンが1秒でそれを行うことができる場合、タワーのプリセットコストは不正確になる可能性があります。
ファジーロジック

0

探しているものが一種の挑発的なタワーである場合、トリガーとして設定されたコライダーをコライダーに追加でき、ミニオンがトリガーに入ると、タワーを攻撃するようにスクリプト化されます。

代替パスがない場合にのみミニオンにタワーを攻撃させたい場合は、パスがブロックされ、A *が呼び出されて別のパスがnullを返した場合、それを計算して敵をスクリプト化し、すべての挑発的なタワーとそれらを対象とします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.