(Unity)パーティクル(エフェクト)に当たり判定を実装する。

(実験)

  • Tankが炎のパーティクルに触れるとダメージを受ける。


(パーティクルの設定)

  • パーティクルを「Open Prefab」で展開
  • 「Collision」にチェック
  • 「Type」「World」に変更
  • 「Send Collision Message」にチェック


(パーティクル用のスクリプト作成)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FireCollision : MonoBehaviour
{
    private void OnParticleCollision(GameObject other)
    {
        if(other.CompareTag("Player"))
        {
            print("hit");
        }
    }
}

(スクリプトをパーティクルに追加)


(実行結果)


(注意点)

  • OnParticleCollisionはパーティクルがColliderにヒットすると呼び出されるので、相手に「Collider」が必要
  • Collision系のため、相手の「Collider」に「Is Trigger」にチェックが入っていると実行されない。