IshidaGames【UnityC#講座】ユニティちゃんに殴り合いをさせる【NavMeshAgent】Tweetnoteで管理人イシゲーのゲームの思い出記事を100円で公開しました。【UnityC#講座】ユニティちゃんにパンチさせるこれらの記事の続きです。今回は自分で操作するユニティちゃんとNavMeshAgentで動くユニティちゃんが互いにパンチし合うようにします。具体的に言うとNavMeshAgentの方は殴られると動き出してプレイヤーを追いかけてColliderに接触したら攻撃し、追いかける時間が決められただけ経つとスタート地点に戻るようにしました。ユニティちゃん同士の殴り合い。一定時間経つとNavMeshAgentで動く方はスタート地点に戻ります。■ユニティちゃんをコピーするDuplicateする前回作ったユニティちゃんをHierarchyで右クリック、Duplicateでコピーして敵にします。Tagを2つ替えるその際、気を付けないといけないのはコピーユニティちゃんとそのAttackPointのTagを直すことです。コピーユニティちゃんのTagをUntaggedにします。コピーユニティちゃんのAttackPointをEnemyAttackにします。簡単に階層が下のオブジェクトにアクセスするにはHierarchyの検索欄を使います。InspectorからPlayerスクリプトに入っているAttackPointをクリックすると簡単にアクセスできます。Playerスクリプトを外すそしてコピーの方のPlayerスクリプトを外します。Componentを選んでください。それを残しておくとアニメーションイベント絡みのエラーが出ます。別に機能に問題はないですが鬱陶しいので消しておきましょう。Static次はNavMeshAgentを動かすための土台を作ります。Staticにしましょう。Staticを選択します。Navigationウィンドウ次はNavigationウィンドウを出します。画面上部のメニューバーのWindowから選択します。NavigationBake次はNavigationウィンドウでBakeします。Staticにしたオブジェクトに青い面ができますが、それがNavMeshAgentが移動できる範囲です。そのオブジェクトを移動したり、形を変えたりするとBakeし直さなければなりません。スポンサーリンク■スクリプトを設定する最後はスクリプトを設定して終わりです。列挙型(Enum)のWateが待機モード。プレイヤーのAttackPointオブジェクトに触れるとChaseになりプレイヤーを追跡します。プレイヤーのColliderに触れると攻撃し、決められた時間が経つとReturnになりスタート地点に戻ります。コピーしたユニティちゃんにスクリプトをアタッチしたら、InspectorからAttackPointを入れてください。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。