创建场景
创建新场景,并在场景中创造如下图 进行测试
1.一个球体: Sphere
2.九个圆柱体:Cylinder
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn5kMRpWTysmeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5ADNzUTN1MTMzIDNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
并且在两种物体中添加 Ridibody 刚体
添加代码:代码并不是让球体爆炸 而是以球体中心为原点,让圆柱体产生爆炸
private void OnCollisionEnter(Collision collision)
{
//爆炸范围半径10Cm
float A = 50;
//得到圆心为 collision.contacts[0] 半径为R的圆中间所有的碰撞体
Collider[] colliders = Physics.OverlapSphere(collision.contacts[0].point,A);
foreach (Collider collider in colliders)
{
//如果检测到BOX
if (collider.tag=="BOX")
{
//添加爆炸力
collider.GetComponent<Rigidbody>().AddExplosionForce(2000f, collision.contacts[0].point,A);
}
}
}
为了避免炸飞地面,将所有圆柱体统一标签为BOX,并在球体落地后检测周围50范围内的BOX的刚体,产生爆炸