本日は Unity の技術調査枠です。
Particle のアタリ判定を設定してオブジェクトに力を加える方法を記事にします。
前提条件
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
Particleで物体に力を加える
Particle で物体に力を加えるには Collision モジュール内の[Collider Force]項目の設定を行います。
docs.unity3d.com
今回は[Collider Force]に[100]の値を設定しました。
[0]の場合は力が全く加えられないことになります。
なお、Multiply 関連のサブ項目は以下の通り、Particle による力の掛け具合に影響を及ぼします。
Multiply by Collision Angle | コライダーに力を適用するとき、パーティクルとコライダーの間の衝突角度に基づいて力を拡大します。グレージング角は正面衝突よりも小さな力を生成します。 |
Multiply by Particle Speed | コライダーに力を適用するとき、パーティクルの速度に基づいて力を拡大します。高速で動くパーティクルは低速のものよりも大きな力を生成します。 |
Multiply by Particle Size | コライダーに力を適用するとき、パーティクルのサイズに基づいて力を拡大します。サイズの大きなパーティクルは小さいものよりも大きな力を生成します。 |
物理演算を行うため、力を加える対象のオブジェクトには Rigidbody コンポーネントを設定しておく必要があります。
今回は地面がないので[Use Gravity]を無効化しておきます。
動作確認
シーンを再生して動作を確認します。
Particle がぶつかると、加わった力でオブジェクトが遥か彼方まで飛んでいきました。
衝突対象の質量を変えてみる
オブジェクト毎にぶつかった際の勢いを変えたい場合は Rigidbody の[Mass]項目を変更して、物理演算における質量を変更します。
例えばオブジェクトの[Mass]を[1]から[10]に変更して再び動作を試してみます。
質量が大きいオブジェクトは力を加えた際にゆっくりと移動します。