c# - unity 3D 对撞机
问题描述
我正在尝试开发一个近战格斗游戏,我正在使用边缘对撞机,下面的代码我注意到,当我从检查员那里移动或启用和禁用对撞机时,一切正常,但是当我站在我的宫殿里并使用 AttackCol.enabled = !AttackCol。启用;我不能击中并且触发功能没有调用
我看到的唯一区别是当我从检查器添加它或当我移动它时它的颜色是正常的但是当我通过代码启用和禁用它时它的颜色变淡并且做什么都不做
public virtual void OnTriggerEnter2D(Collider2D collision)
{
if (DamageSources.Contains( collision.tag ))
{
StartCoroutine(TakeDamage());
}
}
解决方案
- 确保您的触发游戏对象未标记为静态。
virtual
从函数定义中删除。- 为触发组件创建另一个游戏对象并尝试更改整个游戏对象的激活,而不是碰撞组件
推荐阅读
- html - 覆盖的 div 高于包含的 div。如何用 CSS 修复?
- javascript - 如何测试变量是 Map 还是 Array 类型?
- django - 在检查命令 pip freeze 时,显示分段错误错误
- c# - 硬币数量有限的最小硬币找零问题
- c++ - 保持对的集合按降序排列
- c# - 如何在类之间共享用户控件的实例?
- angular - Angular 2 路由器无法正确导航查询参数
- interface - Idris - 派生扩展接口实例
- python - 使用 Python Selenium 获取网站中表格的内容
- powershell - 生成“NMake Makefile”时,为什么 cmake 在 powershell 与命令行中的行为不同?