チャムコード

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

敵Aiの作り方

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

投稿日:2023年8月1日 更新日:

うも、チャーさんです。

この記事では、Unityで敵をスポーンさせる方法について

お話しします。

 

なので、あなたがこの記事を読めば、

すぐにUnityで敵をスポーンさせることができるようになります。

しかし、この記事を読まなければ、

 

Unityで敵をスポーンさせる機能を作るのに、

かなり時間がかかってしまうでしょう。

 

なので、すぐにUnityで敵をスポーンさせれるように

なりたいと思っているならばこのまま下にスクロールして、

記事を読んでください。

 

動画による説明はこちら↓

 

 

Unityで敵をスポーン させる方法

 

で早速、本題です。

Unityで敵をスポーンさせる方法は以下の手順です。

 

  1. 敵のプレハブを用意する
  2. スポナー(敵をスポーンさせるオブジェクトのこと)を用意する
  3. 敵をスポーンさせるスクリプトをスポナーオブジェクトにAdd Componentしてコードを書く

これだけです。

安心してください簡単にできます。

 

1つずつ見ていきましょう。

1敵のプレハブを用意する。

 

ですが、これは敵用に用意したオブジェクトを

まずは用意してください。

 

敵用のオブジェクトは例えばアセットストアで

入手したなんか見た目がいけてるゾンビとか、

モンスターでもいいですし、

 

CubeとかSphereとかを敵に見立てたゲームオブジェクト

などでもOKです。

 

その敵に見立てたHierarchyの中にあるゲームオブジェクトを、

ProjectsのAssetのとこまでドラッグ&ドロップ

してください。

 

これだけで、敵のプレハブがAssetsの中に出来上がります。

で、今後は今用意したこの敵プレハブをスポーンさせて

いくので、Hierarchyにある敵オブジェクトは、

 

消してもいいですし、シーンに表示しておきたいなら、

そのまま残しておいてください。

 

次に、

 

2スポナー(敵をスポーンさせるオブジェクトのこと)を用意する

 

ですが、これはHierarchyの中の+ボタンをクリックし、

空のゲームオブジェクトを選んでください。

英語だとCreate Emptyって書いてるやつです。

 

これをクリックすると空の透明のゲームオブジェクトができます。

 

この空のゲームオブジェクトをスポナーとして、

敵をどんどんスポーンさせたい場所に配置します。

 

すると後は敵をスポーンさせるスクリプトを書いて

Add Componentするだけで、そこからどんどん敵が

湧いて出るようになります。

 

ちなみにこれを空のゲームオブジェクトにしてる理由は、

スポーン地点が例えばCubeとかSphereみたいな

シーン上で目に見えるものだと見た目的に具合が悪いからだけが

理由でして、

 

例えば、何か建物的なのから敵がスポーンしてくる

みたいなのとかCubeから敵がスポーンしてくるみたいな

状態にしたいのなら、別に空のゲームオブジェクトを

選ぶ必要はありません。

 

その際は好きなオブジェクトを選ぶといいです。

ただ空のオブジェクトだと、そういう見た目的な

制約がないのでどこにでも配置しやすいので、

おすすめです。

 

 

3敵をスポーンさせるスクリプトをスポナーオブジェクトにAdd Componentしてコードを書く

 

でプレハブを用意し、スポナーも用意したら次は、

敵をスポーンさせるためのスクリプトを今用意した、

スポナーのゲームオブジェクトにAdd Componentします。

 

そのためには、まずはスポナーのゲームオブジェクトを

Hierarchyの中でクリックします。

 

すると、Inspectorというのが出てるので、

そこにあるAdd Componentというのをクリックしましょう。

 

そしてその中にある、New Scriptというのをクリックし、

適当に名前をつけてください。EnemyとかなんでもOKです。

 

そしたらスポナー用のオブジェクトに、スクリプトが

適用させるので、次はAssetsの中にある、今用意した

スクリプトをクリックし、

 

中に敵をスポーンさせるための、コードを書いていきましょう。

 

で、書く内容は以下です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class createObject : MonoBehaviour
{

public GameObject enemy;

int num = 0;

void Start()
{
}

// Update is called once per frame
void Update()
{
 num++;
 if(num % 40 == 0){
 Instantiate(enemy,new Vector3(数字,数字,数字),Quaternion.identity);

 }

}
}

 

スクリプトだけ見ても、分かりづらいと思うので

補足入れていきます。

 

まず、

public GameObject enemy;

と書くと、

 

スポナーとして用意した空のゲームオブジェクトの

Inspectorのスクリプトの部分に、変数名で書いた

Enemyとその右横に空欄ができます。

 

そこに最初に用意したAssetsの中にある敵プレハブ

オブジェクトを、空欄のとこまでドラッグ&ドロップしましょう。

 

すると、このEnemyという変数名に、

敵オブジェクトのプレハブがセットされ、以後

Instantiateという関数で続々とスポーンさせることが

できます。

 

で次に、

num++;
 if(num % 40 == 0){
 Instantiate(enemy,new Vector3(数字,数字,数字),Quaternion.identity);

 }

 

のとこですが、

この中にある、

 

Instantiate(enemy,new Vector3(数字,数字,数字),Quaternion.identity);

という部分の記述で、敵をスポーンさせることができます。

 

Instantiateの()の中の引数の内容は、

1つ目が生成するオブジェクト。

なので先ほど用意した変数名enemyが入ってます。

 

次に2つ目が、そのオブジェクトが生成させる座標。

数字数字と書いてる部分に適当に数値をほりこむと、

その座標のいちに敵オブジェクトが生成されます(スポーン)

 

なので、ここにランダムな数値が毎回入るように記述を

書くと、ランダムな位置で敵が毎回スポーンされるようになります。

 

ランダムスポーンしたいならそうしましょう。

 

3つ目の引数は、角度で、Quaternion.identity

でもともとプレハブにした時のオブジェクトの角度のまま

敵オブジェクトが生成されます。

 

ちなみにInstnatiateは引数1つだけでもよくて

例えばInstantiate(enemy);だけでも敵オブジェクトを

生成してくれます。

 

ですが2つ目の座標情報の引数を入れると、

3つ目の引数も書かないとエラー出るようになってるので、

注意しましょう。(Quaternion.identityって部分のやつ。)

 

また生成位置を意図的にばらけないようにした場合、

こスポナーオブジェクトの配置した場所に

ひたすら敵がスポーンされ続けます。

 

なので敵がスポーンされる位置は工夫しましょう。

 

で後は、

 

num++;

if(num % 40 == 0){

の部分ですが、ここは敵オブジェクトをスポーン

するタイミングを制御する部分です。

 

num変数の数字が1ずつ増えていき、

40で割り切れる時だけスポーンするという記述になってます。

 

これは実行すると分かりますがかなり早いです。

なので遅くしたい場合は、100とか200とか

%の右の数値を増やしてください。

 

とゆうことで長々と書いてまいりましたが、

これでUnityで敵をスポーンさせることができます。

 

まとめ

ということでこのあたりでまとめておきます。

Unityで敵をスポーンさせる方法は、

  1. 敵のプレハブを用意する
  2. スポナー(敵をスポーンさせるオブジェクトのこと)を用意する
  3. 敵をスポーンさせるスクリプトをスポナーオブジェクトにAdd Componentしてコードを書く

の3つです。

敵を用意して、スポナーオブジェクトを用意して、

スクリプト書くだけです。

 

するとUnityで敵をスポーンさせる機能を作れます。

 

後はスポーンする位置とか、

スポーンするタイミング、(プレイヤーが近づいたらスポーン)

とか敵が一定数以下になったらスポーンとか、

 

色々あなたが作りたいゲームの状態に合わせて

変更させるといいでしょう。

 

この記事で紹介したのは、敵をスポーンさせるのに

いっちばん簡単で簡素な記述を紹介したので、

基本みたいな感じで習得しておいてください。

 

ということでそれでは早速記事の内容を見ながら

やってみてください。

 

またこのブログではUnityの記事だけ書くので、

Unityで色々作るならぜひブックマークしておいてください。

 

それでは、Unityで敵をスポーンさせる方法でした。

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

 

でわ。

チャーさん

 

 

-敵Aiの作り方

関連記事

no image

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

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

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

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

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

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

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

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

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

どうも、チャーさんです。   あなたは、Unityで敵に徘徊させたいですか? であればこの記事を読んでください。   読めば、Unityで敵に徘徊させることができるようになります。 …

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

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

unityで敵を消滅させる

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

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

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

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

no image

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

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

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

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

最新記事

チャーさん

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

 

[簡単な経歴]

 

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

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

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

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

 

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

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