Beispiel #1
0
    // 피격 코루틴
    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 (boss.curHealth > 0)
        {
            // 체력이 남아있다면 다시 원래색으로 돌려놓음.
            mat.color = Color.white;
        }
        else
        {
            // 체력이 0이 되면 움직임을 정지시키고, 회색으로 만든 후에, 잠시후 사라지게 만듬.
            rigid.velocity = Vector2.zero;
            anim.SetBool("isRun", false);
            mat.color        = Color.gray;
            gameObject.layer = 9;
            boss.isDead      = true;
            GameObject go = Instantiate(dropitem, new Vector2(0, 0), Quaternion.identity);
            FieldItem  fi = go.GetComponent <FieldItem>();
            fi.BossDrop();

            Gate_set._instance.countdown();
            GameManager gm = FindObjectOfType <GameManager>();
            gm.curArea++;
            anim.enabled = false;
            //Destroy(boss.gameObject, 2);
        }
        yield return(new WaitForSeconds(0.3f));

        isDamege = false;
    }