【UnityC#講座】ユニティちゃんに殴り合いをさせる【NavMeshAgent】


Unity2019.2.2f1
Windows10

殴り合い/トップ

【UnityC#講座】3D人型モデルを三人称視点で動かす操作を改良

【UnityC#講座】ユニティちゃんにパンチさせる

これらの記事の続きです。

今回は自分で操作するユニティちゃんとNavMeshAgentで動くユニティちゃんが互いにパンチし合うようにします。
より具体的に言うとNavMeshAgentの方は殴られると動き出してプレイヤーを追いかけてColliderに接触したら攻撃し、追いかける時間が決められただけ経つとスタート地点に戻るようにしました。

■ユニティちゃんをコピーする

Duplicateする

前回作ったユニティちゃんをHierarchyで右クリック、Duplicateでコピーして敵にします。

殴り合い/Duplicate

Tagを2つ替える

その際、気を付けないといけないのはコピーユニティちゃんとそのAttackPointのTagを直すことです。
コピーユニティちゃんのTagをUntaggedにします。

殴り合い/Untagged

コピーユニティちゃんのAttackPointをEnemyAttackにします。

殴り合い/Tag/EnemyAttack

簡単に階層が下のオブジェクトにアクセスするにはHierarchyの検索欄を使います。
あるいはInspectorからPlayerスクリプトに入っているAttackPointをクリックすると簡単にアクセスできます。

Playerスクリプトを外す

そしてコピーの方のPlayerスクリプトを外します。
右上の歯車マークをクリックし、Remove Componentを選んでください。

殴り合い/Playerスクリプト/AttackPoint

殴り合い/Playerスクリプト/Remove Component

それを残しておくとアニメーションイベント絡みのエラーが出ます。
別に機能に問題はないですが鬱陶しいので消しておきましょう。

参考
【Unity】SetBoolでNull???【エラー】

■NavigationウィンドウでBakeする

Navigation Static

次はNavMeshAgentを動かすための土台を作ります。
まずはPlanないしはユニティちゃんが移動する床のオブジェクトをNavigation Staticにしましょう。
Inspectorからの右上にあるStaticをクリックし、Navigation Staticを選択します。

殴り合い/Static

殴り合い/Static/Navigation Static

Navigationウィンドウ

次はNavigationウィンドウを出します。
画面上部のメニューバーのWindowから選択します。

Window > AI > Navigation

Bake

次はNavigationウィンドウでBakeします。

Navigation > Bakeタブ > Bakeボタン

殴り合い/Navigationウィンドウ/Bake

するとSceneビューのNavigation Staticにしたオブジェクトに青い面ができますが、それがNavMeshAgentが移動できる範囲です。

殴り合い/NavMesh

そのオブジェクトを移動したり、形を変えたりするとBakeし直さなければなりません。

殴り合い/NavMesh/移動

スポンサーリンク

■スクリプトを設定する

最後はスクリプトを設定して終わりです。

列挙型(Enum)のWateが待機モード。
プレイヤーのAttackPointオブジェクトに触れるとChaseになりプレイヤーを追跡します。
そしてプレイヤーのColliderに触れると攻撃し、決められた時間が経つとReturnになりスタート地点に戻ります。

コピーしたユニティちゃんにスクリプトをアタッチしたら、InspectorからAttackPointを入れてください。

殴り合い/Opponentスクリプト/AttackPoint

これで終わりですがちゃんと動いたでしょうか?

■関連記事

【UnityC#講座】ユニティちゃんにキソラちゃんがついてくるようにする【NavMeshAgent、Blend Tree】

【UnityC#講座】ユニティちゃんたちをドラクエっぽく一列に移動や順番変更させる【List、for文、NavMeshAgent】

【UnityC#講座】近づいたら追いかけてくる巡回ユニティちゃん【NavMeshAgent】

【UnityC#講座】見つけたら追いかけてくる監視ユニティちゃん【NavMeshAgent】

【UnityC#講座】ユニティちゃんをモブキャラのごとくランダム移動させる【NavMeshAgent】

ユニティちゃんライセンス

この作品はユニティちゃんライセンス条項の元に提供されています

スポンサーリンク

目次に戻る


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください