(この記事の使用環境: Unity5.5.0f3 Personal、Windows10)
  

今回はParticleSystemの話。
スイッチ板を踏むとあらかじめ指定した場所で爆発エフェクトが再生されるようにしてみました。
全画面キャプチャ 20170110 121801

こんな感じ。プレイヤーが紫色のスイッチ板(=起爆スイッチ)を踏むと骸骨さんを閉じ込めた室内で爆発が起こります。


では解説。

まずは起爆スイッチから。インスペクタから爆発パーティクルと、爆発地点を指定できるようにしています。爆発地点は配列で複数指定できるようにしてみました。配列の要素数は好きなように変更できます。今回は火力を上げるために複数設定していますが、もちろんまったく別の複数の場所を同時に爆発させることもできます。
全画面キャプチャ 20170110 114310

スクリプト。シンプルに。今回呼び出している爆発パーティクルは複数のエフェクトが組み合わされた複雑なものなので、そのまとまりのPrefabオブジェクトごとInstantiateしています。(個々のエフェクトごとにParticleSystem.Playするのは大変です)

public class ExplosionSwitchController : MonoBehaviour {

    public GameObject explosionParticle;        // 爆発パーティクル

    public Transform[] explosionPoints;         // 爆発地点

    private void OnTriggerEnter (Collider other)
    {
        if (other.gameObject.tag == "Player")   // プレイヤーが踏むと動作する
        {
            foreach (Transform explosionPos in explosionPoints)
            {
                GameObject expl = Instantiate (explosionParticle,               // パーティクルオブジェクトの生成
                    explosionPos.position, transform.rotation) as GameObject;

                Destroy (expl, 5f);                                             // 5秒後に消す
            }
        }
    }
}


爆発地点の設定。ただの空のゲームオブジェクトです。スクリプト内に直接座標を書き込むより、こうしたほうがラクですね。公式チュートリアルの「SurvivalShooter」でも紹介されていたやり方です。
全画面キャプチャ 20170110 115509

爆発パーティクルは、Standard AssetsのParticle Systemsをインポートして、そのなかのPrefabsにある「Explosion」をいじって使っています。Explosionが複数のパーティクルから構成されているのが分かります。
全画面キャプチャ 20170110 120031

今回は骸骨さんを閉じ込めた室内で爆発を起こしているので、そのエフェクトは(なるべく)部屋の壁をすり抜けないようにしています。Explosionを構成する各種パーティクルを選択し、インスペクタでParticleSystemのCollisionにチェックを入れ、パーティクルが外部のコライダーと衝突するようにしています。(※実はこの設定だけでは壁をすり抜けてしまうエフェクトがいくつかありましたが、今回はそれらは再生しないようにしています)
全画面キャプチャ 20170110 120843

今回は以上です。