当前位置: 首页 > 知识库问答 >
问题:

攻击时启用EdgeColider2D不会每次触发OnTriggerInter2D函数

佘俊茂
2023-03-14

我正在开发一个统一的2D平台游戏,我有一个玩家精灵可以挥舞他的剑来造成伤害。

我有一个EdgeCollider2D附加到玩家的子对象上,这跟踪了玩家的剑挥舞。

除非玩家点击近战按钮,否则< code>EdgeCollider2D将被禁用,当点击近战按钮时,< code>EdgeCollider2D会正确显示,但只会在玩家第一次挥杆时以及转身后触发< code>OnTriggerEnter2D功能。

我在近战攻击动画事件中调用此函数:

public void MeleeAttack()
{
    SwordCollider.enabled = true;
}

而这个动画行为是附加在近战攻击动画上的:

override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
    animator.ResetTrigger("meleeOne");
    Player.Instance.SwordCollider.enabled = false;
}

最后,这是在剑对撞机脚本中调用的 OnTriggerEnter2D 方法:

void OnTriggerEnter2D(Collider2D otherCollider)
{
    Debug.Log(otherCollider.name);
    //Destroy(otherCollider.gameObject);
}

边缘碰撞体和角色的屏幕截图

共有1个答案

易刚捷
2023-03-14

我的玩家的刚性身体2D入睡,并导致其子游戏对象与边缘滑块2D组件连接在它上面也入睡。我将玩家的刚性Body2D设置为永不睡觉,触发器按预期发生。

 类似资料:
  • 我想在点击某个div(“.checker”)后触发点击输入事件。换句话说,点击'.checker'将模拟点击复选框上的点击事件,远程检查它。 我写的代码可以工作,但click只有在第二次单击后才触发,第一次单击失败时才触发。这种情况甚至不会发生在'.checker'上,也会发生在checkbox上。 下面的所有HTML都包装在jquery折叠菜单中。单击“H3”后,“.sub-tree-wrap”

  • 问题内容: 我试图在每次启动Ajax调用时在$ rootScope上触发一个事件。 事件“ httpCallStarted”没有被触发。我怀疑在配置块中使用$ rootScope或任何其他实例服务是不正确的。如果是这样,如何在每次启动HTTP调用时获取事件,而不必在每次调用时都传递配置对象? 提前致谢 问题答案: 您总是可以将$ http包装在服务中。由于服务仅设置一次,因此您可以让服务工厂为您设

  • 我找到了其他相关的问题,但没有一个答案实际上解决了我的问题。这个按钮在IE上很好用,但在Chrome上不行。我尝试移除span元素,将按钮放在任何其他标记之外,但仍然触发了两次。这个temple扩展了一个'base.html'文件,代码位于'main'元素中。 HTML: jQuery:

  • 问题内容: 我正在创建一个需要一些简单输入的gui应用程序,但是,当我单击JFrame中的按钮时,我正在使用的actionPerformed方法没有被触发/触发(什么也没有发生)。我似乎无法弄清楚我错过了什么(如果有帮助,这是Java的新手)。感谢您的帮助/建议。 这是所有代码: 问题答案: 您需要像这样向按钮组件添加一个动作监听器。

  • 问题内容: 假设我希望能够在程序中任何地方每次引发异常时都能够记录到文件。我不想修改任何现有代码。 当然,可以将其概括为每次引发异常时都可以插入钩子。 以下代码是否被认为可以安全地执行此操作? 问题答案: 如果要记录 未捕获的 异常,只需使用sys.excepthook即可。 我不确定是否会记录 所有 引发的异常的价值,因为很多库会在内部为可能不关心的事情引发/捕获异常。

  • 我正在尝试使用azure函数Cosmos触发器将数据从一个集合迁移到另一个集合。我已将StartFromStart设置为True。我有多个集合要迁移,所以我对每个集合使用一个函数,所以传输速度很快。 当我部署函数时,它会显示状态为已运行,但它实际上不会启动传输,除非我选择停止并启动。或者,如果我转到“监控”部分,转到“实时度量”,然后它就开始了。是否有一种方法可以让它在部署后立即开始传输。我弄乱了