【Unity初心者 ゲーム開発メモ】エフェクト発生、削除のメモ その2

2020年5月27日

こんにちわわ

外出自粛申請が解除されて二日目ですが、みなさんどのようにお過ごしでしょうか?

ボクはというと、『ぐらんぶる』と『その着せ替え人形は恋をする』の新刊が発売したので、それを読みつつ、『オーバーロード』を見始めたので見つつ、ときどきUnityの勉強をしております。※ほぼ遊んでるやんけ(怒)

ぐらんぶるはなんか実写化する見たいですね。大学生の日常?(あれが日常はちとやばい)を描く作品なので、笑いあり、青春ありの映画になりそうですね。

その着せ替え人形は恋をするはコスプレ大好き少女とひな人形作り師を目指す少年が互いに支えあって自分に正直に好きなことを全力で楽しみながら青春を謳歌する恋愛ストーリーものです。4月は君の嘘や、ランウェイで笑ってなどが好きな方にはドはまりする作品だと思います。

下記にリンク貼っておくので、よかったらぜひ読んでみてください!

ぐらんぶるは2020年5月26日更新時点では、1~3巻まで試し読みができます。

 

 

雑談はさておき、早速本題に入りたいと思います。

その2の前にその1に目を通してもらえると何が違うのかがわかるかと思います。

【Unity学習メモ】エフェクト発生、削除のメモ その1

エフェクトの発生、削除 その2

なんやねん!前回のメモと同じじゃねーか!と思われた方。マジすみません。

あの後、敵オブジェクトも爆発させたるか!と思って同じような処理を敵オブジェクトにも実装していたのですが、ちょっとだけメモしときたいことがあったため、今回その2ということで記事にしました。

テーマとして、オブジェクトを削除する際に、『オブジェクト名を指定して消す』か『オブジェクトタグを指定して消す』かで少しだけInspectorの設定、スクリプトが変わるため、メモしようとおもいました。

敵Prefabを準備

ボクは下記のMonsterオブジェクトを使用しております。
ダウンロードしたオブジェクトを適当な位置に配置してください。

Enemyスクリプトを作成

前回の記事で書いたPlayer.csとほとんど変わりません。

では書いてきます。

ここで注意ですが、初心者の方やUnityに慣れていない方の場合、18~20行目にあるように、GameObject.Find(オブジェクト名)でオブジェクトを取得しようとするかもしれません。
ですが、今回は『Hierarchy内にオブジェクトがない』ので、ここでGameObject.Find(オブジェクト名)で取得して、エフェクトを生成しようとすると、下記のようなScene内にオブジェクトが存在しませんというエラーが発生します。

エラー:
ArgumentException: The Object you want to instantiate is null.

Hierarchyに配置していないPrefabやファイルパス指定してオブジェクトを生成する際に、対象のPrefabが存在しない場合に『オブジェクトがないですよ』という意味のエラーだそうです。
分かれば当たり前のことですが、記載ミスでつまずくと結構めんどくさいので念のため。

 

また、今回はEnemyをタグで取得するため、以下注意してください。
 
タグを取得(今回)
turtle = GameObject.FindGameObjectWithTag(“Enemy”);

 
名前で取得(その1でPlayerを取得したパターン)
unitychan = GameObject.Find(“unitychan”);
 

スクリプトをオブジェクトに追加

こちらはエネミーオブジェクトに『Enemy.cs』を追加していきます。
各変数には、画像のように追加してください。

また、敵オブジェクトにColliderやRigitBodyが追加されていない場合はこちらも忘れずに追加してください。

 
上記の処理まで完了したら、Playerと敵オブジェクトをぶつけてみてください。
おそらく両者痛み分けのごとく二つともオブジェクトが消し飛ぶと思います。
 
本来であれば、HPを設定してHPが0になったらオブジェクトを消せるようにしたいのですが、今回はここまでとします。

 

それではお疲れさまでした!!

Unity

Posted by urikuro