C# Unity使一个对象通过另一个对象,但仍然触发碰撞

C# Unity使一个对象通过另一个对象,但仍然触发碰撞,c#,unity3d,C#,Unity3d,基本上,我需要一个对象能够像触发器一样穿过一个对象,但仍然可以将其检测为一个冲突,因为我让打击敌人的方式起作用(或者让physics2d.overlapboxall检测触发器的方式),这是我的武器攻击和敌人的代码,我需要通过玩家,但也会对玩家造成伤害 if (AttackDelay <= 0) { //attacking Collider2D[] EnemiesToDmg = Physics2D.OverlapBoxAll(Atta

基本上,我需要一个对象能够像触发器一样穿过一个对象,但仍然可以将其检测为一个冲突,因为我让打击敌人的方式起作用(或者让physics2d.overlapboxall检测触发器的方式),这是我的武器攻击和敌人的代码,我需要通过玩家,但也会对玩家造成伤害

 if (AttackDelay <= 0)
            { //attacking
                Collider2D[] EnemiesToDmg = Physics2D.OverlapBoxAll(AttackPos.position,new Vector2(AttackRangeX,AttackRangeY),0, WhatIsEnemy);
                for (int i = 0; i < EnemiesToDmg.Length; i++)
                {EnemiesToDmg[i].GetComponent<Health>().takeDamage(AttackDamage);}

if(AttackDelay如评论中所述,这正是
isTrigger
的目的。
您可以这样更改:

Collider.isTrigger = true;
或者在编辑器中使用此复选框:


这将允许您使用诸如
OnTriggerEnter
之类的代码,并使您的游戏对象能够通过

这正是触发器。您可以移动的碰撞器
Collider.isTrigger = true;