예제 #1
0
    // 부모 오브젝트가 rigidbody를 가지고 있고 자식 오브젝트가 rigidbody를 가지고 있지 않으면 자식 collider에 부모 trigger가 실행된다.
    void OnTriggerEnter2D(Collider2D coll)
    {
        if (coll.gameObject.tag.Equals("BULLET_ENERMY") ||
            coll.gameObject.tag.Equals("BULLET_ENERMY_OVER_WALL"))
        {
            HP -= 20;

            Instantiate(Ptc, transform.position, transform.rotation);

            if (HP <= 0)
            {
                HP    = 0;
                state = SHIELD.DISTROYED;

                GameObject.Find("Player").GetComponent <Player>().isNotShield       = 1;
                GameObject.Find("Player").GetComponent <CircleCollider2D>().enabled = true;

                GetComponent <CircleCollider2D>().enabled = false;
                transform.Find("shield").gameObject.SetActive(false);

                StartCoroutine(RechargeHP());
            }
            if (coll.gameObject.tag.Equals("BULLET_ENERMY"))
            {
                Destroy(coll.gameObject);
            }
        }
    }
예제 #2
0
 public void Init()
 {
     HP    = 100.0f;
     state = SHIELD.NORMAL;
     GetComponent <CircleCollider2D>().enabled = false;
     transform.Find("shield").gameObject.SetActive(false);
 }
예제 #3
0
    IEnumerator RechargeHP()
    {
        WaitForSeconds time = new WaitForSeconds(0.1f);

        while (HP < 100.0f)
        {
            HP += 2.0f;

            yield return(time);
        }

        state = SHIELD.NORMAL;
    }