我正在制作一个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);
}
1 回答
我的玩家的RigidBody2D入睡并导致其附带EdgeCollider2D组件的儿童游戏对象也入睡 . 我将播放器的RigidBody2D设置为永不休眠,触发按预期发生 .