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