チャムコード

チャーさんのUnityゲームラボです。Unityでゲーム制作する時に使うコードやノウハウをメインに発信しています。Unityでゲーム制作したいと思っているなら読んでください。

敵Aiの作り方

Unityで敵を徘徊させたい?ならこうやればいいですよ。

投稿日:2023年10月5日 更新日:

うも、チャーさんです。

 

あなたは、Unityで敵に徘徊させたいですか?

であればこの記事を読んでください。

 

読めば、Unityで敵に徘徊させることができるようになります。

ですがこの記事を読まないと、敵に徘徊させられずに

イライラしてしまうでしょう。

 

ということで、Unityで敵を徘徊させたければ、

このまま記事を読んでください。

 

動画はこちら

 

 

Unityで敵を徘徊させる方法

 

ということで本題です。

Unityで敵を徘徊させる方法ですが、

それには、

 

new Vector3でランダムな座標を作り、

navMeshAgentでそこに移動させる。

そしてそれを繰り返す。

 

それをすれば可能です。

ということで説明していきます。

 

 

ランダムな座標を生成する

 

まずnew Vector3でランダムな座標を作るですが、

敵を徘徊させるには、

ランダムな座標地点を生成し、

 

敵オブジェクトがそこのランダムな座標に到達したら、

次のランダムな座標に移動させる。

 

ということを繰り返せば可能なわけです。

 

 

なので、まずはnew Vector3でランダムな座標を作りましょう。

それをするためのコードとしては、

var randomPos = new Vector3(Random.Range(0,60),0,Random.Range(0,60));

 

と1行書けばokです。

 

このコードを書くことで、

ランダムな座標を生成することができます。

 

 

一応補足しておくと、

Random.Range()というメソッドで、

ランダムな数値を生成することができます。

 

例えば、Random.Range(0,60)ならば、

0~59までの数値がランダムに生成され、

それぞれ、x軸、z軸にランダムな数値が入るわけです。

 

例 

1回目

var randomPos = new Vector3(1,0,12);

2回目

var randomPos = new Vector3(9,0,16);

 

みたいな感じです。

 

 

で、こうやってランダムな座標を生成したら、

あとは、NavMeshAgentを使って、

 

そこの座標に敵オブジェクトを移動させればOKです。

 

 

NavMeshAgentで移動させる

 

で、次にNavMeshAgentに関しての説明ですが、

それはこちらの記事でどうぞ。

 

unityで敵を移動させる方法(詳細にわかりやすく説明します)

 

また、NavMeshとnavMeshAgentを設定できたら、

あとは以下のコードを書き、そのスクリプトを

敵オブジェクトに引っ付ければ、完成です。

 

Unityで敵を徘徊させるコード

 

コードは以下です。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI; //これ大事忘れないように
 
public class クラス名 : MonoBehaviour
{
private NavMeshAgent agent;
 
    // Start is called before the first frame update
    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        nextGoal();
       
    }
 
    void nextGoal(){
  var randomPos = new Vector3(Random.Range(0,60),0,Random.Range(0,60));
    agent.destination = randomPos;
    }
    
    // Update is called once per frame
    void Update()
    {
        // Debug.Log(agent.remainingDistance);
        if(agent.remainingDistance < 0.5f){
        nextGoal();
        }
        
    }
}
 
 

コードに関する詳しい補足説明は、

以下の記事 

 

Unityで敵に巡回させるならこの3ステップ(ランダム巡回もできる)

 

で詳しく説明しています。

 

このコードは、new vector3でランダムに座標を

生成する部分あたり以外は、上記の記事で紹介した

コードとほとんど一緒です。

 

なのでコードの1つ1つの仕組みを理解したければ、

そちらの記事をご参照ください。

 

 

まとめ

 

ということでまとめに入ります。

 

Unityで敵を巡回させたければ、

new Vector3()でランダムな座標を生成しましょう。

そしてNavMeshAgentを使用し、

 

そこに向かって敵オブジェクトを移動させましょう。

そしてあとはそれを何度も繰り返しましょう。

 

 

そうすることで、Unityで敵を徘徊させることが可能です。

 

ということで、是非やってみてください。

でわ、これで本記事は以上です。

 

読んでいただきありがとうございました。

それでわ。

 

チャーさん

 
 
 
 
 

-敵Aiの作り方

関連記事

no image

unityで敵を移動させる方法(詳細にわかりやすく説明します)

どうも、チャーさんです。   あなたはunityで敵を移動させたい、そう思っていませんか? コライダーなどでもできるが、他の方法がないかと探してませんか?   この記事ではコライダ …

no image

unityで敵に近づくと追いかけてくるコードとコードの解説記事

どうも、チャーさんです。   あなたはunityで敵に近づくと、 プレイヤーを追いかけてくるという機能を つけたいと思っていませんか?   この記事ではそれを実現するコードと方法や …

Unityで敵による索敵を距離で行わせる簡単な方法「このメソッド1個使えばいける」

どうも、チャーさんです。 いつもこのブログ、チャムコードに来ていただき ありがとうございます。   あなたは、Unityで敵による索敵を距離で行わせたいですか? プレイヤーと敵オブジェクトと …

unityで敵を消滅させる

Unityで敵を消滅させる方法(敵を攻撃した時に消滅させるとかも)

  どうも、チャーさんです。   あなたはUnityで敵を消滅させたいですか? 例えばプレイヤーが敵を攻撃したら消滅させたり、 そんな風にしたいならばこの記事を読んでください。 & …

unity-enemy-spawn

Unityで敵をスポーンさせる簡単な方法[速攻でできる]

どうも、チャーさんです。 この記事では、Unityで敵をスポーンさせる方法について お話しします。   なので、あなたがこの記事を読めば、 すぐにUnityで敵をスポーンさせることができるよ …

Unityで敵に巡回させるならこの3ステップ(ランダム巡回もできる)

どうも、チャーさんです。 あなたはUnityで敵を巡回させたいですか? この記事ではUnityで敵を巡回させる方法を説明します。   なので、この記事を読めばUnityで敵の巡回をすぐにさせ …

Unityで敵にプレイヤーを攻撃させる方法

どうも、チャーさんです。   あなたはUnityで敵が攻撃してくるようにしたいですか? この記事ではUnityで敵に攻撃させる方法を書いてるので、 この記事を読めば敵に攻撃させることができま …

Unityで敵が攻撃を受けたらHPを減らす機能の作り方

どうも、チャムコードというブログ運営してる、チャーさんです。   あなたはUnityで敵のHPを減らす機能を作りたいですか? 敵がプレイヤーから攻撃を受けたときに、HPを減らす 処理をつけた …

Unityで敵に索敵機能を持たせる方法(簡単なやり方)

どうも、チャーさんです。   あなたはUnityで敵に索敵機能をつけたいですか? この記事ではUnityで敵に索敵機能をつける方法を説明します。 なので、   この記事を読めば、あ …

Unityで敵の上にHPを表示させる方法「すぐにできます」

どうも、チャーさんです。 あなたは、unityで敵にHPを表示させたいですか?   この記事ではunityで敵の上にHPを表示させる方法について お話しします。   なのであなたが …

最新記事

チャーさん

Unityに関する記事を書いてます。

 

[簡単な経歴]

 

2018年-プログラムを始めUnityの存在を知りハマる。

2019年-エンジニアとして仕事開始(web系)

2021年-UnityでVR開発等にも手を出し始める。

現在-エンジニアとして活動しながらUnityも続行中。

 

youtubeでは、Unityに関する動画をあげてるので、

あなたのUnityスキルアップにどうぞ。