チャムコード

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

敵Aiの作り方

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

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

 

うも、チャーさんです。

 

あなたはUnityで敵を消滅させたいですか?

例えばプレイヤーが敵を攻撃したら消滅させたり、

そんな風にしたいならばこの記事を読んでください。

 

この記事を読めばUnityで敵を消滅させる方法がわかり、

あなたのUnityプロジェクトでも敵を消滅させれるでしょう。

 

しかしこの記事を読まないとその方法がわからず、

苦労するかもしれません。なのでUnityで敵を消滅させたいなら

このままスクロールして記事を読んでください。

 

動画はこちら

 

Unityで敵を消滅させる方法はコレ

 

まず結論ですが、Unityで敵を消滅させたいなら、

Unityで用意されてる、

 

Destroy()

 

というメソッドを使いましょう。

このメソッドはオブジェクトを消滅させることが

できるメソッドです。

 

消滅させたいオブジェクトはメソッドの引数のなかに

書けばOKです。

 

例えば、

void Start()
{

Destroy(gameObject);

}

 

という風にコードを書けば、再生ボタンを押した

瞬間に、このコードが書いてあるスクリプトを

貼り付けたオブジェクトが消滅します。

 

Unityで敵と衝突した際に敵を消滅させる方法

 

とはいえ、これじゃ全然ゲームとして成立しません。

 

ゲーム開始ボタンを押した瞬間、敵が消滅するからです。

こんなんじゃ困ります。

 

ゲームじゃプレイヤーが敵を攻撃したら消滅したりしてくれないと

困るからです。

 

なのでDestroyと合わせて使うのは、

衝突判定を行ってくれるUnityが用意してるメソッド、

 

OnCollisionEnter()

 

を使いましょう。

するとプレイヤーが攻撃(プレイヤーの武器が敵と衝突)

したら敵を消滅させるということができます。

 

衝突判定用の用意されてるメソッドは以下です。

 

void OnCollisionEnter(Collision col){

}

 

*注意点*

 

また衝突判定を使うには、

オブジェクトのコンポーネントに

Rigidbodyとcolliderが設定されてる必要があります。

 

colliderは3dオブジェクトを用意すると

基本初めからUnity側でつけてくれてます。

なのであなたがつけるのはRigidbodyだけです。

 

 

でコードに話戻しますが、

この衝突判定のメソッドの{}の中にDestroyを書けば、

例えば衝突したら敵を消滅させるみたいなことができます。

 

具体的には以下のようなコードです。

 

void OnCollisionEnter(Collision col){
 Destroy(gameObject);
}

 

敵がプレイヤーと衝突すると消滅させる具体的なコード部分

 

ただしかし、これだと、このスクリプトを貼った

敵がどんなものに衝突したとしても、

敵が消滅します。

 

床に当たっても敵が消滅してしまいます。

なので、敵が衝突したものがプレイヤーだったら

のようにcollisionのメソッド内でif文を使い、

 

条件指定します。

 

どうやって書くかというとif文と

OnCollisionEnter(Collision col)のこの引数のcolを

使えばできます。

 

この引数のcolは便利で、衝突したオブジェクトの情報が

勝手に格納されます。

 

なのでコード的には以下のように書けばいいです。

 

void OnCollisionEnter(Collision col){

 if(col.gameObject.name == “Player”){
  Destroy(gameObject);
 }

}

 

(補足 col.gameObject.name とは、衝突した.ゲームオブジェクトの.名前 という意味)

 

このように書くと、引数の変数colに敵と衝突したオブジェクトの情報が、

格納され、その衝突したオブジェクトがPlayerと名付けた

オブジェクトだった場合、

 

敵オブジェクトが消滅します。

 

Unityで敵を攻撃した時に消滅させるならこの方法

 

またこのif文のところを

 

if(col.gameObject.name == “PlayerWeapon”)

とかにしてプレイヤーが持ってる武器(プレイヤーの子オブジェクト)に、

PlayerWeaponと名前をつければ、

 

プレイヤーが武器で敵を攻撃して

敵にそれが当たれば、

 

 

敵オブジェクトを消滅させることができます。

 

とはいえこれだと攻撃せずとも敵が武器と接触するだけで消滅

するので、厳密には武器のcolliderのオンオフをするコードを

書かないといけないです。

 

詳しくは割愛しますが。

 

基本的なやり方の概念しては、

基本的にプレイヤーの武器になるオブジェクトは、

まずcolliderをオフにしておきます。

 

そして、コードの中で、例えば攻撃ボタンを押した時に

プレイヤーオブジェクトのアニメーションが動いて

武器で敵を攻撃するとかなら、

 

攻撃ボタンを押した瞬間に、武器オブジェクトの

colliderがオンになるように設定します。

 

そうすると攻撃しない時は、敵と武器オブジェクトが

衝突しても、衝突判定がないので、

敵は消滅しませんが、

 

攻撃ボタンを押した時は、武器オブジェクトのcolliderが

オンになってるので、武器と敵が接触すると、

衝突判定があったことになり、

 

Destroy()が作動して、敵が消滅します。

このようにすれば、敵を武器で攻撃した時に

敵を消滅させることができます。

 

と、このようにDestroyとCollisionを組み合わせて

条件分岐等すれば、敵を攻撃したら消滅みたいに

色々ゲーム的な設定ができますので、

 

ぜひやってみて欲しいです。楽しいですよ。

 

まとめ

 

ではまとめに入ります。

 

Unityで敵を消滅させるには、

Unityで準備されている、Destroy()

のメソッドを使いましょう。

 

またそのままだと一瞬で消えて使い物にならないので、

ゲーム性を持たせるために、Collisionなどの衝突系の

メソッドと組み合わせて、

 

あなたのゲーム的な条件に合わせて、敵を消滅させる

ようにしましょう。

 

そうすれば、楽しい感じでUnityで敵を消滅させる

ことができますよ!

 

それではこの記事は以上です。

 

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

 

チャーさん

-敵Aiの作り方

関連記事

unity-enemy-spawn

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

no image

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

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

no image

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

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

最新記事

チャーさん

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

 

[簡単な経歴]

 

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

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

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

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

 

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

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