複数の敵がすべて同じターゲットに向かって移動するゲームに取り組んでいます。私が抱えている問題は、すべての敵がこのターゲットに到達するために同じ経路をたどっているため、非現実的な敵の「群れ」が発生することです. 私の質問はこれです:どうすればそれらを少し広げて混雑効果を生み出すことができますか? 現在、Unity の組み込み NavMesh システムを使用しています。ある敵が使用するパスにペナルティを課して、他の敵が別のパスを取るように促す方法があるに違いないことは知っていますが、それを実装する方法がわかりません。どんな助けでも大歓迎です!(また、コードは C# で最もよく理解できますが、JavaScript は多少理解できます)
2 に答える
「フォーメーション」というゲームオブジェクトを作成します。このフォーメーション オブジェクト内に必要な数の子オブジェクトを作成して、目的の敵の配置位置をシミュレートします。必要に応じて、それぞれの子プレースメント ゲームオブジェクトを密に配置するか、まばらに配置します。まばらな人口 (フォーメーション GameOject の中心からの距離が大きい) だけでも、ゾンビは、フォーメーション GO を移動すると最短距離が変化するため、障害物を通過するさまざまな経路をたどります。
この場合、各敵ゾンビに対して、ゾンビの NavMeshAgent ターゲットを、フォーメーション ゲームオブジェクト内の対応するゲームオブジェクト配置にします。このシナリオでフォーメーションに NavMeshAgent を配置すると、ゾンビの望ましくない振動が発生するようです。しかし、フォーメーションを目標のプレイに向かってゆっくりと動かすだけで、5 分間の妥当な結果が得られるようです。
フォーメーションにバリエーションを追加したい場合、おそらく暴徒の考え方を追加するには、各フォーメーションに「ボブ」タイプのスクリプトを追加して、フォーメーション内のゾンビのターゲット配置を中心から少しずらします。
これにより、分隊内のターゲット位置を切り替えるだけで、分隊内の敵の役割を簡単に交換できます (他のゲーム タイプの場合)。