名古屋でアプリ・VR開発を行っています
ワクワクできるゲームをガンガン開発リリース中!

ParticleSystemの「Collision」機能の使い方

みなさん、こんにちは!SAT-BOXのツバメです。

 

今回はあまり使うことがなかったParticleSystemのCollisionの機能を使い方をざっくり記

事にしようと思います。今の開発で使うことになったので、メモ書き程度のつもりです

ので、ご了承ください。

 

1.パーティクルを用意

とりあえずCollisionを使うため適当にパーティクルを作ります。

設定した値は以下の通りです。

Gravity Modifier:1 (パーティクルが下に落ちるように)

Shape:Box (散らばらなければ何でもいいです)

 

2.パーティクルが当たるオブジェクトを用意

Cubeを作成。パーティクルが当たる位置に配置。

 

3.パーティクルのCollisionの機能をONにする

Collisionにチェックを入れて機能させる。

TypeをWorldすればCubeに跳ね返るパーティクルが見えるはず…。

 

↓ の画像のように設定すればいいです

f:id:sat-box:20210301151602p:plain

 

4.接触したオブジェクトをスクリプトで取得する

OnCollisionEnterのような接触判定を取得できる処理がパーティクルにも存在します。

それは「OnParticleCollision」です。

 

まず、ParticleSystemのCollisionでSend Collision Messagesにチェックを入れておいてください。これがあるとスクリプト上でOnParticleCollisionが通るようになります。

 

次にスクリプトを作成して、OnParticleCollisionの処理を入れるだけです。スクリプトはパーティクル側にアタッチしてください。OnParticleCollisionの引数がGameObjectになっていますが、パーティクルが当たったオブジェクトを渡しているみたいです。

 

↓ の画像のようにするだけです

f:id:sat-box:20210301154457p:plain

 

これでパーティクルが接触したオブジェクトを取得できます。

 

5.終わり

ざっと書いただけですが、これを利用すればパーティクルが当たった敵にダメージを与えたりとダメージ判定にも使えたりできるかもしれないですね。パーティクルがオブジェクトのどの部分に当たったのかを取得出来る方法もあるみたいなので、使いこなせば色々な表現が出来るかも?

 

以上、ツバメでした!