首页 文章

每次攻击不触发OnTriggerEnter2D函数时启用EdgeCollider2D

提问于
浏览
0

我正在制作一个unity2D 2D平台游戏,我有一个玩家精灵可以摆动他的剑来造成伤害 .

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

EdgeCollider2D 被禁用,除非玩家击中近战按钮, EdgeCollider2D 在击中近战按钮时正确显示,但仅在他第一次挥动时以及在他转身并回转后触发 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);
}

Screen shot of edge collider and character

enter image description here

1 回答

  • 0

    我的玩家的RigidBody2D入睡并导致其附带EdgeCollider2D组件的儿童游戏对象也入睡 . 我将播放器的RigidBody2D设置为永不休眠,触发按预期发生 .

相关问题