示例#1
0
    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;
        }
    }
示例#2
0
    IEnumerator IeActivateHitbox()
    {
        hitboxState = HitboxState.Opened;

        for (int frame = 0; frame < hitboxData.numOfActiveFrames; frame++)
        {
            CheckForHit();
            yield return(new WaitForFixedUpdate());
        }

        hitboxState = HitboxState.Closed;
    }