// 피격 코루틴 public IEnumerator OnDamage(Vector2 reactVec) { // 피격 코루틴이 실행되면 mat.color = Color.red; isDamege = true; // 넉백을 실행. rigid.AddForce(reactVec * 100 * Time.deltaTime, ForceMode2D.Impulse); yield return(new WaitForSeconds(0.1f)); if (enemy.curHealth > 0) { // 체력이 남아있다면 다시 원래색으로 돌려놓음. mat.color = Color.white; } else { // 체력이 0이 되면 움직임을 정지시키고, 회색으로 만든 후에, 잠시후 사라지게 만듬. rigid.velocity = Vector2.zero; anim.SetBool("isRun", false); mat.color = Color.gray; gameObject.layer = 9; enemy.isDead = true; int coinNum = Random.Range(5, 11); if (enemy.type != Enemy.Type.BMonster) { for (int i = 0; i < coinNum; i++) { Instantiate(Coins, new Vector2(gameObject.transform.position.x, gameObject.transform.position.y), Quaternion.identity); } GameObject go = Instantiate(dropitem, new Vector2(gameObject.transform.position.x, gameObject.transform.position.y), Quaternion.identity); FieldItem fi = go.GetComponent <FieldItem>(); fi.EnemyDrop(); Gate_set._instance.countdown(); } Destroy(enemy.gameObject, 2); } yield return(new WaitForSeconds(0.3f)); isDamege = false; }