Unity:Objectの各パーツをバラバラに飛び散らせる方法

UnityにてObjectをばらばらにし飛び散らせる方法です。

 

タイトルがわかりにくいかもしれませんが、今回紹介する方法は例えば戦車のゲームを作るとき、

攻撃があったと同時に戦車のパーツを四方に飛び散らせてあげる時の実装方法です。

 

この演出をするのとしないのでは臨場感がだいぶ変わるので、

もし作っている方がいらっしゃいましたら是非とも実装していただきたいと思います。

 

ではさっそく解説していきたいと思います。

 

まず実装方法の1つとしてバラバラにしたいオブジェクトそれぞれをAddExplosionForce

飛ばす方法がありますが、それ以外により簡単に実装できる方法があるのでそちらを解説します。

 

その方法とはバラバラにしたいオブジェクト全てにBoxColliderをつける方法です。

この方法ではBoxColliderをつけたObject同士が弾きあい、四方八方に飛んでくれます。

 

それぞれのObjectが飛ぶ方向をしっかり指定したい場合ではこの方法は使えませんが、

ただ四方八方に飛ばしたいだけならば個人的にはいちばん簡単な方法だと思います。

 

しかしここで問題となるのはBoxColliderが干渉しそれぞれがバラバラになるなら、

ゲームを開始した時点でバラバラになってしまうということです。

 

そのための解決策は初期のゲームで使うColliderをアタッチしていないもの、

Colliderをアタッチしたバラバラになるものの2つのObjectのprefabを用意する方法です。

 

初期では前者のほうをゲーム上に配置し、ゲームが進み攻撃を受けバラバラになる

直前に後者のほうのObjectに自身を置き換えてしまいます。

 

置き換えられたObjectは次の瞬間四方に飛び散るという具合です。

 

ゲームの演出としてただ消えるのとバラバラになるのでは臨場感に差があるので、

戦闘系のゲームではどんどん実装していければいいと思います。

 

以上、UnityでObjectが攻撃されたときバラバラに飛び散らせる方法でした。

 

 

 

 

 

 

 

 

 

コメントを残す

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