unity之粒子碰撞觸發方法

需求是用水滅掉火焰。所以水的粒子要與火焰的粒子發生碰撞時執行滅火事件。效果如圖:

 

首先從火焰角度思考:

火焰的粒子要監測是否被撞到,所以要給它加上碰撞體。同時勾選collision裏面的Send Collision messages,把座標改成world,collision mode 改成3D。

collider with選項中可以選擇和某一類物體發生碰撞,如果選擇Everything就是和所有的碰撞體進行碰撞。

 

然後將下面的代碼綁定到該粒子的物體上,該代碼是來監測碰撞的

  //火焰被碰撞時調用
    void OnParticleCollision(GameObject other)
    {
        Debug.Log("我是" + other.name);

       if (other.tag == "Water")
        {
            Debug.Log("滅火開始");

         }

    }

 

上述代碼會在有物體碰到該粒子的碰撞體的時候被調用。 當然碰撞的物體(也就是上面提到的水)也是需要有collider的。這樣火焰碰撞就完成了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章