Unity3d 统一物理层作为触发器

Unity3d 统一物理层作为触发器,unity3d,triggers,collision,Unity3d,Triggers,Collision,我想让球体碰撞成为每次玩家通过物理射击的触发器。重叠球体。但它似乎只是制造碰撞,而不是触发。那么我该如何解决这个问题呢? 对撞机[]cs=物理.OverlapSphere(transform.position,redi) foreach(cs中的碰撞器c) { 刚体r=c.gameObject.GetComponent(); 如果(r!=null) { r、 加法爆炸力(功率、变换位置、雷迪); } 如果(c.gameObject.tag==“敌人”) { 销毁(c.游戏对象); } 如果(c.

我想让球体碰撞成为每次玩家通过物理射击的触发器。重叠球体。但它似乎只是制造碰撞,而不是触发。那么我该如何解决这个问题呢? 对撞机[]cs=物理.OverlapSphere(transform.position,redi)

foreach(cs中的碰撞器c)
{
刚体r=c.gameObject.GetComponent();
如果(r!=null)
{
r、 加法爆炸力(功率、变换位置、雷迪);
}
如果(c.gameObject.tag==“敌人”)
{
销毁(c.游戏对象);
}
如果(c.gameObject.tag==“玩家”)
{
c、 gameObject.GetComponent().health-=5;
}
}

物理查询依赖于
Physics.queryHitTriggers
属性,该属性定义某些调用是否命中触发器碰撞器(请参阅)。 您可以将
QueryTriggerInteraction
为您的
OverlapSphere
调用设置为方法参数。如果不这样做,它将使用全局设置,在您的案例中,该设置可能被设置为忽略触发器

正确的方法调用:

Collider[] hitColliders = Physics.OverlapSphere(position, range, layerMaskSphere, QueryTriggerInteraction.Collide);

我的意思是我想重叠触发器。如果你只想使用(!c.isTrigger)继续,你可以使用
的触发器,那么“重叠”是什么意思在循环中。
Collider[] hitColliders = Physics.OverlapSphere(position, range, layerMaskSphere, QueryTriggerInteraction.Collide);