void OnTriggerEnter2D(Collider2D col)
 {
     if (!col.IsTouchingLayers(LayerMask.GetMask("CharacterHitbox")))
         return;
     if ((col.tag == "Enemy" || col.tag == "Player") && this.tag != col.tag)
     {
         AttackController attackIncoming = col.GetComponent<AttackController>();
         // Hit
         if (CheckIfHit(attackIncoming) == true)
         {
             // Guard
             if (state == CharacterState.Guard && attackIncoming.AttackBehavior.GuardBreak)
             {
                 GuardBreak();
             }
             else if (state == CharacterState.Guard)
             {
                 OnGuard.Invoke(this);
                 return;
             }
             characterStat.TakeDamage(attackIncoming.AttackBehavior);
             attackIncoming.HasHit(this);
             if (characterStat.GetHP() <= 0 && state != CharacterState.Dead)
             {
                 Knockback(attackIncoming);
                 KnockbackDeath(attackIncoming);
             }
             else
             {
                 Knockback(attackIncoming);
             }
         }
     }
 }
        /*public void DrawCharacter(Character characterData)
        {
            textCharacterName.text = characterData.CharacterName;
            if (characterData.CharacterFace == null)
                characterFace.enabled = false;
            else
                characterFace.enabled = true;
            characterFace.sprite = characterData.CharacterFace;
            characterFaceOutline.sprite = characterData.CharacterFace;

            int healthBarNumber = ((int)characterData.CharacterStat.HpMax / 1000);
            healthBarNumber = Mathf.Max(0, healthBarNumber);
            for (int i = 0; i < healthBarNumber; i++)
            {
                if (healthBarList.Count <= i)
                    healthBarList.Add(Instantiate(transformBar, transformBarNumber));
                healthBarList[i].gameObject.SetActive(true);
            }
            for (int i = healthBarNumber; i < healthBarList.Count; i++)
            {
                healthBarList[i].gameObject.SetActive(false);
            }
            if (healthBarList.Count == 0)
                transformBarNumber.gameObject.SetActive(false);
            DrawHealth((int)characterData.CharacterStat.Hp, (int)characterData.CharacterStat.HpMax);
        }*/

        public void DrawCharacter(PlayerData characterData, CharacterStatController characterStat)
        {
            textCharacterName.text = characterData.CharacterName;
            if (characterData.CharacterFace == null)
                characterFace.enabled = false;
            else
                characterFace.enabled = true;
            characterFace.sprite = characterData.CharacterFace;
            characterFaceOutline.sprite = characterData.CharacterFace;

            int healthBarNumber = (characterStat.GetHPMax() / healthBarAmount);
            healthBarNumber = Mathf.Max(0, healthBarNumber);
            for(int i = 0; i < healthBarNumber; i++)
            {
                if(healthBarList.Count <= i)
                    healthBarList.Add(Instantiate(transformBar, transformBarNumber));
                healthBarList[i].gameObject.SetActive(true);
            }
            for(int i = healthBarNumber; i < healthBarList.Count; i++)
            {
                healthBarList[i].gameObject.SetActive(false);
            }
            if (healthBarList.Count == 0)
                transformBarNumber.gameObject.SetActive(false);
            DrawHealth(characterStat.GetHP(), characterStat.GetHPMax());
        }