private void CheckForHit() { //Debug.Log("CheckForHit()"); HurtboxesHit = Physics2D.OverlapBoxAll(transform.position + new Vector3(hitboxData.positionOffset.x * (parentChar.charState.isFacingRight ? -1 : 1), hitboxData.positionOffset.y, 0), hitboxData.size, hitboxData.rotation, 1 << LayerMask.NameToLayer("Hurtbox")); if (HurtboxesHit.Length > 0) { for (int i = 0; i < HurtboxesHit.Length; i++)//apply hit to hurtboxes { Collider2D c = HurtboxesHit[i]; CollidedWith(c); } if (HasHitAtLeastOneEnemy()) { hitboxState = HitboxState.Hitting; } } else { hitboxState = HitboxState.Opened; } }
IEnumerator IeActivateHitbox() { hitboxState = HitboxState.Opened; for (int frame = 0; frame < hitboxData.numOfActiveFrames; frame++) { CheckForHit(); yield return(new WaitForFixedUpdate()); } hitboxState = HitboxState.Closed; }