首页 > 解决方案 > unity 3D 对撞机

问题描述

游戏画面

我正在尝试开发一个近战格斗游戏,我正在使用边缘对撞机,下面的代码我注意到,当我从检查员那里移动或启用和禁用对撞机时,一切正常,但是当我站在我的宫殿里并使用 AttackCol.enabled = !AttackCol。启用;我不能击中并且触发功能没有调用
我看到的唯一区别是当我从检查器添加它或当我移动它时它的颜色是正常的但是当我通过代码启用和禁用它时它的颜色变淡并且做什么都不做

public virtual void OnTriggerEnter2D(Collider2D collision)
    {
        if (DamageSources.Contains( collision.tag ))
        {
            StartCoroutine(TakeDamage());
        }
    }

标签: c#unity3d

解决方案



  • 确保您的触发游戏对象未标记为静态。
  • virtual从函数定义中删除。
  • 为触发组件创建另一个游戏对象并尝试更改整个游戏对象的激活,而不是碰撞组件

推荐阅读