Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤­¤Þ¤¹¡£

¼ê½ç£±£±¡¡¡Ý¥Ð¥ì¥Ã¥È¤Î¾ðÊó¤òÍøÍѤ·¤Æ¥¨¥Í¥ß¡¼¤òÇ˲õ¤¹¤ëÀ©¸æ¤ò¼ÂÁõ¡Ý
£²£²¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¨¥Í¥ß¡¼¤ÎHP(ÂÎÎÏ)¤ÎÃͤòÀßÄꤷ¡¢¥¨¥Í¥ß¡¼¤òÇ˲õ¤¹¤ë»þ¤Î¾ò·ï¤ò HP ¤¬ 0 ¤Î»þ¤ËÊѹ¹¤¹¤ë
£²£³¡¥Bullet ¥¹¥¯¥ê¥×¥È¤È EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¨¥Í¥ß¡¼¤ÎHP(ÂÎÎÏ)¤ÎÃͤò¥Ð¥ì¥Ã¥È¤Î¹¶·âÎÏʬ¤À¤±¸º»»¤·¡¢0 ¤Ë¤Ê¤Ã¤¿¤éÇ˲õ¤¹¤ë½èÍý¤Ë½ñ¤­´¹¤¨¤ë
£²£´¡¥½èÍý¤ò´Ê·é¤Ë½ñ¤¯ÊýË¡¤ò¹Í¤¨¤ë



¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£

¡¡¡¦TryGetComponent ¥á¥½¥Ã¥É¤È out ¥­¡¼¥ï¡¼¥ÉÀë¸À



£²£²¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¨¥Í¥ß¡¼¤ÎHP(ÂÎÎÏ)¤ÎÃͤòÀßÄꤷ¡¢¥¨¥Í¥ß¡¼¤òÇ˲õ¤¹¤ë»þ¤Î¾ò·ï¤ò HP ¤¬ 0 ¤Î»þ¤ËÊѹ¹¤¹¤ë

£±¡¥Àß·×


¡¡¥¨¥Í¥ß¡¼¤È¥Ð¥ì¥Ã¥È¤ÎÅö¤¿¤êȽÄê¤ò¼ÂÁõ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Ìµ»ö¤Ë¥¨¥Í¥ß¡¼¤È¥Ð¥ì¥Ã¥È¤ÎÁÐÊý¤¬Ç˲õ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¤³¤Î¼ê½ç¤Ç¤Ï¥¨¥Í¥ß¡¼¤È¥Ð¥ì¥Ã¥È¤Ë¿·¤·¤¤¾ðÊó¤ò»ý¤¿¤»¤Æ¡¢¤½¤ì¤òÍøÍѤ·¤Æ¡¢Ç˲õ¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¤Þ¤º¤ÏºÇ½é¤Ë¡¢¥¨¥Í¥ß¡¼Â¦¤Ë HP(ÂÎÎÏ)¤ÎÃͤòÀßÄꤷ¡¢¥Ð¥ì¥Ã¥È¤È¤Ö¤Ä¤«¤ë¤¿¤Ó¤Ë¤³¤ÎÃͤò¸º»»¤·¤Æ¤¤¤Ã¤Æ¡¢0 ¤Ë¤Ê¤Ã¤¿¤È¤­¤Ë¤Ï¤¸¤á¤ÆÇ˲õ¤µ¤ì¤ë¤è¤¦¤Ë¡¢½èÍý¤ÎÆâÍƤò½ñ¤­´¹¤¨¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¥¨¥Í¥ß¡¼¤Î¾ðÊó¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¼«ÂΤ¬»ý¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Enemy ¤È¤¤¤¦¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¡¢¥¨¥Í¥ß¡¼Ìò¤È¤·¤Æ¿¶¤ëÉñ¤ï¤»¤Æ¤¤¤ë¾ðÊ󤬤¢¤ë¤Ï¤º¤Ç¤¹¡£
¤½¤¦¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤Ç¤¹¡£¤³¤Î¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤Ë¡¢Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥¨¥Í¥ß¡¼Ìò¤È¤·¤Æ¿¶¤ëÉñ¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡°Ê¾å¤Î»ö¤«¤é¡¢¥¨¥Í¥ß¡¼¤Î HP ¤È¤¤¤¦ÀßÄêÃͤ⡢¤³¤Î EnemyController ¥¹¥¯¥ê¥×¥È¤ËÄɲ䷤Ƥ¤¤¯¤³¤È¤Ç¡¢Enemy ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÂÎÎϤȤ¤¤¦¾ðÊ󤬤¢¤ë¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£



¡¡HP ¤ÎÃͤϥ¹¥¯¥ê¥×¥ÈÁ´ÂΤòÄ̤¸¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢Àë¸À¥Õ¥£¡¼¥ë¥É¤Ë¿·¤·¤¯ÊÑ¿ô¤òÀë¸À¤·¤Æ HP ¤È¤·¤ÆÍøÍѤ¹¤ë¤è¤¦¤Ë¹Í¤¨¤Þ¤¹¡£
HP ¤È¤·¤Æ¤ä¤ê¤È¤ê¤¹¤ëÃͤÏÀ°¿ô¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤Ç¤¹¤Î¤Ç¡¢¤³¤³¤Ç¤Ï¡¢int ·¿¤ÎÊÑ¿ô¤È¤·¤ÆÀë¸À¤ò¹Ô¤¤¤Þ¤·¤ç¤¦¡£

¡¡¤Þ¤¿¡¢public ½¤¾þ»Ò¤ò¤Ä¤±¤ÆÀë¸À¤·¤Æ¤ª¤¯¤³¤È¤Ç¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ë¤³¤Î hp ÊÑ¿ô¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢Hp ¤ÎÃͤòÊѹ¹¤¹¤ë¤¿¤á¤Ë¡¢¥¹¥¯¥ê¥×¥È¤ò¤½¤ÎÅÔÅÙ¤¤¤Á¤¤¤ÁÊѹ¹¤·¤Ê¤¯¤Æ¤â¤è¤¤¤è¤¦¤Ë¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤«¤é¡¢¥¨¥Í¥ß¡¼¤Î hp ¤ÎÃͤòÊѹ¹¤¹¤ë½ÐÍè¤ë¤è¤¦¤ËÀ߷פ·¤Þ¤·¤ç¤¦¡£



¡¡Ç˲õ¤Î½èÍý¤Ë´Ø¤·¤Æ¤ÏÀè¤Û¤É¤Î¼ê½ç¤Ç DestroyObjects ¥á¥½¥Ã¥É¤È¤·¤Æ¥á¥½¥Ã¥É²½¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤Î¥á¥½¥Ã¥É¤Î½èÍý¤ò¤½¤Î¤Þ¤ÞÍøÍѤ·¤Æ¤·¤Þ¤¦¤È¡¢¥Ð¥ì¥Ã¥È¤È°ì½ï¤Ë¥¨¥Í¥ß¡¼¤âÇ˲õ¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤³¤Î¤è¤¦¤Ê¾ì¹ç¡¢¤³¤Î¥á¥½¥Ã¥É¤Ë¤ÏÉÔÍפȤʤë½èÍý¤òÀÚ¤êÎ¥¤·¤Æ¡¢Ê̤ÎÉôʬ¤Ëµ­½Ò¤¹¤ë¤è¤¦¤Ë¹Í¤¨¤Æ¤¤¤­¤Þ¤¹¡£

¡¡º£²ó¡¢¥¨¥Í¥ß¡¼¤È¥Ð¥ì¥Ã¥È¤¬¤Ö¤Ä¤«¤Ã¤¿ºÝ¤Ë¡¢¾ï¤ËÇ˲õ¤µ¤ì¤Æ¤è¤¤¤Î¤Ï¥Ð¥ì¥Ã¥È¤Î¤ß¤Ç¤¹¡£
¤Ç¤¹¤Î¤Ç¡¢¥Ð¥ì¥Ã¥È¤ÎÇ˲õ½èÍý¤Ï¤½¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¤¤Æ¡¢¥¨¥Í¥ß¡¼¤ÎÇ˲õ½èÍý¤òÊ̤ξì½ê¤Ç½èÍý¤¹¤ë¤è¤¦¤Ë¹Í¤¨¤Æ¤¤¤­¤Þ¤¹¡£
¡¡
¡¡¤Þ¤¿¤½¤Î¾ì¹ç¡¢DestroyObjects ¤È¤¤¤¦¥á¥½¥Ã¥É̾¤âÁê±þ¤·¤¤Ì¾¾Î¤Ç¤Ï¤Ê¤¯¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢DestroyBullet ¤È¥á¥½¥Ã¥É̾¤âÊѹ¹¤ò¤·¤Þ¤¹¡£
¥á¥½¥Ã¥É̾¤òÊѹ¹¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥á¥½¥Ã¥É̾¤Î¾å¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤­¡¢Ì¾Á°¤ÎÊѹ¹¤ò¼Â¹Ô¤·¤ÆÊѹ¹¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¤³¤Î¼ê½ç¤ÇÊѹ¹¤¹¤ë¤È¡¢¥á¥½¥Ã¥É̾¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¤³¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ëÌ¿Îáʸ¤Î̾¾Î¤â°ì½ï¤ËÊѹ¹¤Ë¤Ê¤ê¡¢Èó¾ï¤ËÊØÍø¤Ç¤¹¡£



¡¡¤Ç¤ÏÌäÂê¤Î¥¨¥Í¥ß¡¼¤ÎÇ˲õ½èÍý¤ò¤É¤Î¤è¤¦¤Ë¹Í¤¨¤Æ¤¤¤¯¤«¡¢¤Ç¤¹¡£

¡¡¥Ð¥ì¥Ã¥È¤¬¿¯Æþ¤·¤¿ºÝ¤Ë¸º»»¤·¤Æ¤¤¤¯¤³¤È¤Ï´Ö°ã¤¤¤Ê¤¤¤Ç¤·¤ç¤¦¤«¤é¡¢¤Þ¤º¤Ï¡¢³ºÅö¤Î¾ì½ê¤Ë¥³¥á¥ó¥È¤òµ­½Ò¤·¤Æ¤ª¤­¤Þ¤¹¡£
¤³¤ÎÉôʬ¤Ë½èÍý¤ò¤½¤Î¤Þ¤Þ¤Þ¤È¤á¤Æ½ñ¤¤¤Æ¤â¤è¤¤¤Ç¤¹¤·¡¢Àè¤Û¤É¤Î¤è¤¦¤Ë¡¢¥á¥½¥Ã¥É¤òºîÀ®¤·¤Æ¤ª¤¤¤Æ¡¢
¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·Ì¿Îá¤Î¤ß¤ò¹Ô¤¤¡¢¼ÂºÝ¤Î½èÍý¤ò¥á¥½¥Ã¥ÉÆâ¤Ç¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£

¡¡ºÇ½é¤Ï½èÍý¤ÎÁ´Ê¸¤ò½ñ¤¤¤Æ¤ª¤­¡¢¸å¤Ç¸«Ä¾¤·¤¿¤È¤­¤Ë¥á¥½¥Ã¥É²½¤¹¤ë¼êË¡¤¬½ñ¤­¤ä¤¹¤¤¤È»×¤¤¤Þ¤¹¡£

¡¡Hp ¤Î¸º»»½èÍý¤Ç¤¹¤¬¡¢ºÇ½é¤Ï¸ÇÄêÃͤǡ¢°ìÄê¤ÎÃͤò Hp ¤«¤é¸º¤é¤¹¤è¤¦¤Ë¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£
º£²ó¤Ï¥Ð¥ì¥Ã¥È¤Ë¤Ö¤Ä¤«¤Ã¤¿¤é 15 ¤È¤¤¤¦Ãͤò hp ¤è¤ê¸º¤é¤¹¤è¤¦¤Ë¤·¤Æ¡¢¤³¤Î·×»»·ë²Ì¤Ë¤è¤Ã¤Æ¡¢Hp ¤ÎÃͤ¬ 0 °Ê²¼¤Ë¤Ê¤Ã¤¿¤È¤­¤Ë¡¢
Àè¤Û¤É DestroyObjects ¥á¥½¥Ã¥É¤«¤éÀÚ¤êÎ¥¤·¤¿¡¢¥¨¥Í¥ß¡¼¤ÎÇ˲õ½èÍý¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£

¡¡¥³¥á¥ó¥È¤Ï¤³¤Î¤è¤¦¤Ê¥¤¥á¡¼¥¸¤Ç¤¹¡£

    // ¿¯ÆþȽÄê
    private void OnTriggerEnter2D(Collider2D col) {

¡¡¡¡¡¡¡¡// ¥Ð¥ì¥Ã¥È¤¬ÀÜ¿¨¤·¤¿¤é
        if (col.gameObject.tag == "Bullet") {
¡¡
            // ¥Ð¥ì¥Ã¥È¤ÎÇ˲õ½èÍý¤ò¸Æ¤Ó½Ð¤¹
¡¡¡¡¡¡¡¡¡¡¡¡DestroyBullet(col);¡¡  // DestroyObjects ¥á¥½¥Ã¥É¤«¤é̾Á°¤òÊѹ¹

  
            // hp ÊÑ¿ô¤«¤é 15 ¸º¤é¤¹


            // hp ¤¬ 0 °Ê²¼¤Ë¤Ê¤Ã¤¿¤é


          ¡¡// ¥¨¥Í¥ß¡¼¤ÎÇ˲õ½èÍý¤ò¹Ô¤¦  
        }
    }

¡¡¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£·×»»¤ÈÀ©¸æʸ¤¬É¬Íפˤʤë¤È»×¤¤¤Þ¤¹¡£


£²¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢HP ¤òÀßÄꤷ¡¢¥Ð¥ì¥Ã¥È¤È¤Î¿¯ÆþȽÄê¤Î¤¿¤Ó¤ËHP¤ò¸º¤é¤·¤Æ¡¢0 ¤Ë¤Ê¤Ã¤¿¤éÇ˲õ¤¹¤ë½èÍý¤Ë½ñ¤­´¹¤¨¤ë


¡¡Àë¸À¥Õ¥£¡¼¥ë¥É¤ËɬÍפÊÊÑ¿ô¤òÀë¸À¤·¤Æ¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡DestroyObjects ¥á¥½¥Ã¥É¤Î̾Á°¤ò DestroyBullet ¤ËÊѹ¹¤·¡¢¥Ð¥ì¥Ã¥È¤ÎÇ˲õ½èÍý¤Î¤ß¤Ë¤·¤Þ¤¹¡£
¥á¥½¥Ã¥É̾¤äÊÑ¿ô̾¤òÊѹ¹¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢ÂоݤΥ᥽¥Ã¥É̾¤Î¾å¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤òɽ¼¨¤·¡¢
¡Ö̾Á°¤ÎÊѹ¹¡×¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ÎÊýË¡¤ÇÊѹ¹¤ò¹Ô¤¦¤È¡¢¥á¥½¥Ã¥É̾¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¤³¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ëÌ¿ÎáÉôʬ¤â°ì½ï¤ËÊѹ¹¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
£±²ó¤Î½¤Àµ¤ÇÂоݤȤʤëÉôʬ¤¬°ì³ç¤ÇÊѹ¹¤µ¤ì¤Þ¤¹¡£



EnemyController.cs


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¡¢Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Þ¤¹¡£
public ½¤¾þ»Ò¤ÇÀë¸À¤·¤¿¾ðÊó¤òɽ¼¨¤µ¤ì¤Æ¤¤¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£


Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



£³¡¥Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦


¡¡Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤ê¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤ò³Îǧ¤·¤Þ¤¹¡£
hp ÊÑ¿ô¤ÎÃͤò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤êÀßÄê²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢ºÇ½é¤Ï 30 ¤ËÀßÄꤷ¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£


£´¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡ÀßÄ꤬´°Î»¤·¤Þ¤·¤¿¤Î¤Ç¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ¥¨¥Í¥ß¡¼¤Ë¥Ð¥ì¥Ã¥È¤ò¤Ö¤Ä¤±¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


¡ã¼Â¹ÔÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡¥Ð¥ì¥Ã¥È¤¬¥¨¥Í¥ß¡¼¤Î¥³¥é¥¤¥À¡¼¤Ë¿¯Æþ¤¹¤ë¤¿¤Ó¤Ë¡¢hp ¤ÎÃͤ¬ 15 ¤º¤Ä¸º»»¤·¡¢¤½¤ÎÅÔÅÙ¡¢Console ¥Ó¥å¡¼¤Ë Debug.Log ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ»Ä¤ê Hp ¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¤½¤·¤Æ¡¢Hp ¤¬ 0 °Ê²¼¤Ë¤Ê¤Ã¤¿ºÝ¤Ë¤Ï¡¢¥¨¥Í¥ß¡¼¤¬Ç˲õ¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£


£µ¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢½èÍý¤ò¥á¥½¥Ã¥É²½¤¹¤ë


¡¡¿·¤·¤¯µ­½Ò¤·¤¿½èÍý¤ò¹Ô¤¦¤¿¤á¤Î¥á¥½¥Ã¥É¤òºîÀ®¤·¡¢Hp ¤Î¸º»»½èÍý¤È¥¨¥Í¥ß¡¼¤ÎÇ˲õ³Îǧ¤Î½èÍý¤ò¤½¤Î¥á¥½¥Ã¥ÉÆâ¤Ç¼Â¹Ô¤¹¤ë¤è¤¦¤ËÊѹ¹¤·¤Þ¤·¤ç¤¦¡£
¥á¥½¥Ã¥É¤ò½ñ¤¯¾ì½ê¡¢¥á¥½¥Ã¥É̾¤Ï¼«Í³¤Ç¤¹¤¬¡¢Ì¾Á°¤«¤é½èÍý¤¬Ï¢ÁÛ¤·¤ä¤¹¤¤¤â¤Î¡¢¤Þ¤¿¡¢Æ°»ì + ̾»ì¤Î̾¾Î¤Ë¤Ê¤ë¤è¤¦¤Ë¹Í¤¨¤Æ¤¯¤À¤µ¤¤¡£
¥á¥½¥Ã¥É¤¬´°À®¤·¤¿¤é¡¢¥µ¥Þ¥ê¡¼¤ò˺¤ì¤º¤Ë½ñ¤¤¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£


EnemyController.cs


¡¡½¤Àµ¤¬½ªÎ»¤·¤¿¤é¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ¡¢Æ±¤¸¤è¤¦¤Ë½èÍý¤¬Æ°¤¤¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£


£²£³¡¥Bullet ¥¹¥¯¥ê¥×¥È¤È EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥¨¥Í¥ß¡¼¤ÎHP(ÂÎÎÏ)¤ÎÃͤò¥Ð¥ì¥Ã¥È¤Î¹¶·âÎÏʬ¤À¤±¸º»»¤·¡¢0 ¤Ë¤Ê¤Ã¤¿¤éÇ˲õ¤¹¤ë½èÍý¤Ë½ñ¤­´¹¤¨¤ë

£±¡¥Àß·×


¡¡¸½ºß¤Ï¥Ð¥ì¥Ã¥È£±¤Ä¤Ë¤Ä¤­¡¢¸ÇÄê¤Î¼Â¿ôÃÍ¤Ç 15 ¤º¤Ä¥¨¥Í¥ß¡¼¤Î Hp ¤ò¸º»»¤·¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤Î¤Þ¤Þ¤Ç¤Ï¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤òÁý¤ä¤·¤¿¾ì¹ç¤Ë¤âƱ¤¸Ãͤ·¤«¸º»»¤·¤Ê¤¤¾õÂ֤Ǥ¹¡£
¤½¤³¤Ç¸ÇÄêÃͤǤϤʤ¯¡¢¥Ð¥ì¥Ã¥È¤Î¹¶·âÎϤÎʬ¤À¤± Hp ¤ò¸º»»¤¹¤ë¤è¤¦¤Ë½èÍý¤òÊѹ¹¤Ç¤­¤ì¤Ð¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¡¢¥¨¥Í¥ß¡¼¤Î Hp ¤ò¸º»»¤¹¤ëÃͤòÊѹ¹²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¸½ºß¡¢¥Ð¥ì¥Ã¥È¤Ë¤Ï¹¶·âÎϤȤ¤¤¦¾ðÊ󤬤¢¤ê¤Þ¤»¤ó¡£¤«¤È¤¤¤Ã¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤â¡¢¤½¤Î¤è¤¦¤ÊÀßÄêÃͤϤĤ¤¤Æ¤¤¤Þ¤»¤ó¡£
¤½¤³¤Ç¡¢¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë Bullet ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¤³¤Î¥¹¥¯¥ê¥×¥È¤Ë¿·¤·¤¯ÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ÎÃͤò¹¶·âÎϤȤ·¤ÆÀßÄꤷ¤Þ¤¹¡£
¥¨¥Í¥ß¡¼¤Î EnemyController ¥¹¥¯¥ê¥×¥È¤Ë Hp ÊÑ¿ô¤òÍÑ°Õ¤·¤¿¤Î¤È¡¢Æ±¤¸¹Í¤¨Êý¤Ç¤¹¡£
¤Ê¤¼¤Ê¤é¤Ð¡¢Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥Ð¥ì¥Ã¥È¤È¤·¤Æ¤ÎÌò³ä¤òÍ¿¤¨¤Æ¤¤¤ë¤Î¤¬¡¢Bullet ¥¹¥¯¥ê¥×¥È¤Ç¤¢¤ë¤«¤é¤Ç¤¹¡£

¡¡À߷פΥݥ¤¥ó¥È¤È¤Ê¤ë¤Î¤Ï¡¢ÊÑ¿ô¤òºîÀ®¤¹¤ëºÝ¤Ë¤Ï¡¢¤É¤ó¤ÊÌÜŪ¤Ç¡¢¤É¤Î¤è¤¦¤Ë»È¤¦¤Î¤«¤ò¡¢ÌÀ³Î¤ËÀßÄꤷ¤Æ¤«¤éºîÀ®¤¹¤ë¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
º£²ó¤Ï¡¢¥Ð¥ì¥Ã¥È¤Î¹¶·âÎϤȤ·¤ÆÊÑ¿ô¤òºîÀ®¤¹¤ë¡¢¤È¤¤¤¦ÌÀ³Î¤ÊÌÜŪ¤¬¤¢¤ê¡¢¤½¤ÎÍÑÅӤ⡢¥¨¥Í¥ß¡¼¤Î hp ÊÑ¿ô¤«¤é¸º»»¤¹¤ë¡¢¤È·è¤á¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤¦¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆÊÑ¿ô¤Ë¤âÌò³ä¤¬Í¿¤¨¤é¤ì¤Æ¡¢¤½¤ì¤ò±¿ÍѤ¹¤ë¤³¤È¤Ç¡¢½èÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤¯¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤³¤¬Âç»ö¤Ê¥Ý¥¤¥ó¥È¤Ç¤¹¡£
¤Þ¤¿¡¢¸º»»¤ò¹Ô¤¦¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¤Î¤Ç¡¢ÁÐÊý¤ÎÊÑ¿ô¤Î·¿¤¬Æ±¤¸·¿Æ±»Î¤Ç¤Ê¤±¤ì¤Ð¸º»»½èÍý¤Ï¤Ç¤­¤Þ¤»¤ó¡£
¤è¤Ã¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î¹¶·âÎÏÍѤÎÊÑ¿ô¤Î·¿¤Ï¼«¤º¤È¡¢hp ÊÑ¿ô¤ÈƱ¤¸ int ·¿¤ÇºîÀ®¤ò¹Ô¤¦¡¢¤È¤¤¤¦À߷פËɬÍפʾðÊó¤â¸«¤¨¤Æ¤­¤Þ¤¹¡£


£²¡¥Bullet ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Ð¥ì¥Ã¥È¤Ë¹¶·âÎϤòÀßÄꤹ¤ë


¡¡Àë¸À¥Õ¥£¡¼¥ë¥É¤Ë¿·¤·¤¯ public ½¤¾þ»Ò¤Î bulletPower ÊÑ¿ô¤òÀë¸À¤·¤Æ¡¢¤³¤ÎÃͤò¥Ð¥ì¥Ã¥È¤Î¹¶·âÎϤȤ·¤ÆÍøÍѤ¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤ÎÃͤϥ¨¥Í¥ß¡¼¤Î hp ÊÑ¿ô¤ÎÃͤȷ׻»¤ò¹Ô¤¦Í½Äê¤Ç¤¹¡£hp ÊÑ¿ô¤Î·¿¤Ï int ·¿¤Ç¤¹¤Î¤Ç¡¢·×»»¤ò¹Ô¤¦¤Ë¤ÏÁÐÊý¤Î·¿¤òƱ¤¸ int ·¿¤Ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£


Bullet.cs

¡¡<=¡¡¥¯¥ê¥Ã¥¯¤·¤¿¤é³«¤­¤Þ¤¹


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¡¢¥×¥ì¥Õ¥¡¥Ö¤Î Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Þ¤¹¡£
public ½¤¾þ»Ò¤ÇÀë¸À¤·¤¿¾ðÊó¤òɽ¼¨¤µ¤ì¤Æ¤¤¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£


Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü




£³¡¥¥×¥ì¥Õ¥¡¥Ö¤Î Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦


¡¡Prefabs ¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ë¡¢Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Æ¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Î°ìÈÖ¾å¤Î Open Prefab ¤òÁªÂò¤·¤ÆÊÔ½¸¥â¡¼¥É¤Ë¤·¤Þ¤¹¡£
Bullet ¥¹¥¯¥ê¥×¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ë bulletPower ¤ÎÃͤ¬É½¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Àè¤Û¤É¤Î¸ÇÄêÃͤȤϰۤʤ롢10 ¤ËÀßÄꤷ¤Æ¤ß¤Þ¤·¤ç¤¦¡£


Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£


£´¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Ð¥ì¥Ã¥È¤Î¹¶·âÎϤÎʬ¤À¤± HP ¤ò¸º¤é¤·¤Æ¡¢0 ¤Ë¤Ê¤Ã¤¿¤éÇ˲õ¤¹¤ë½èÍý¤Ë½ñ¤­´¹¤¨¤ë


¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤Ë¤ª¤¤¤Æ Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤·¤Æ»²¾È¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£

¡¡¤³¤Î½èÍý¤¬É¬ÍפÊÍýͳ¤È¤·¤Æ¤Ï¡¢¤Ö¤Ä¤«¤Ã¤¿¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ä¥³¥é¥¤¥À¡¼¼«ÂΤˤϡ¢¹¶·âÎϤȤ¤¤¦ÀßÄêÃͤξðÊ󤬤ʤ¤¤¿¤á¤Ç¤¹¡£
¤¢¤¯¤Þ¤Ç¤â¹¶·âÎϤȤ¤¤¦¾ðÊó¤Ï¡¢¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¤Ö¤Ä¤«¤Ã¤¿¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤òÍøÍѤ·¤Æ¡¢Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤·¤Æ¤Ï¤¸¤á¤Æ¡¢¹¶·âÎϤȤ¤¤¦¾ðÊó¤òÍøÍѤǤ­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡¥Ð¥ì¥Ã¥È¤¬¤Ö¤Ä¤«¤Ã¤¿¤È¤­¡¢¥Ð¥ì¥Ã¥È¤Î¥³¥é¥¤¥À¡¼¤Î¾ðÊ󤬡¢col ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¾ðÊó¤òÍøÍѤ·¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊ󤫤顢GetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤³¤È¤Ç Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤¹¡£
¼èÆÀ¤¹¤ëºÝ¤Ë¤Ï¡¢Bullet ·¿¤ÎÊÑ¿ô¤òºîÀ®¤·¡¢¤½¤ÎÃæ¤Ë Bullet ¥¹¥¯¥ê¥×¥È¤òÂåÆþ¤·¤Æ¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¤½¤¦¤·¤Ê¤¤¤ÈÀ޳ѾðÊó¤ò¼èÆÀ¤·¤Æ¤â¡¢¼¡¤Î¹Ô°Ê¹ß¤Ë¾ðÊó¤ò»ý¤Á¤³¤¹¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£

¡¡Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢public ½¤¾þ»Ò¤ÇÀë¸À¤·¤Æ¤¤¤ë bulletPower ÊÑ¿ô¤Î¾ðÊó¤ò»²¾È¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤ËÌÜŪ¤Î½èÍý¤Þ¤Ç¤ò½ç½øΩ¤Æ¤Æ¡¢É¬ÍפʾðÊó¤Ë¤¿¤É¤ê¤Ä¤¯¤Ë¤Ï¤É¤Î¤è¤¦¤Ê¼ê½ç¤òƧ¤ó¤Ç¤¤¤±¤Ð¤è¤¤¤«¡¢¤½¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£



¡¡Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤Ï¡¢OnTriggerEnter2D ¥á¥½¥Ã¥ÉÆâ¤Ç¼èÆÀ¤·¤Æ¤¤¤ë¾ðÊó¤Ç¤¹¤Î¤Ç¡¢
Àè¤Û¤É¥á¥½¥Ã¥É²½¤·¤¿ UpdateHp ¥á¥½¥Ã¥É¤Ë¤Ï¡¢¤³¤Î¾ðÊ󤬤¢¤ê¤Þ¤»¤ó¡£
¤Ä¤Þ¤ê¡¢Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤òÁ÷¤êÆϤ±¤Æ¤¢¤²¤Ê¤¤¤È¡¢¤³¤Î¾ðÊó¤ò UpdateHp ¥á¥½¥Ã¥É¤ÇÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£

¡¡¤³¤Î¤è¤¦¤Ê¤È¤­¤Ï¤Þ¤¿°ú¿ô¤Î½ÐÈ֤ˤʤê¤Þ¤¹¡£UpdateHp ¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë Bullet ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¡¢
¤½¤·¤Æ¸Æ¤Ó½Ð¤¹¤È¤­¤ËÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤ë Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤òÅϤ¹¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡¤½¤ì¤Ç¤Ï½èÍý¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤Ê¤¬¤é¡¢¼ÂÁõ¤ËÄ©À路¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡ã¥³¥á¥ó¥ÈÎã¡ä
 ¡¡ // ¿¯ÆþȽÄê
    private void OnTriggerEnter2D(Collider2D col) {

¡¡¡¡¡¡¡¡// ¥Ð¥ì¥Ã¥È¤¬ÀÜ¿¨¤·¤¿¤é
        if (col.gameObject.tag == "Bullet") {
¡¡
            // ¥Ð¥ì¥Ã¥È¤ÎÇ˲õ½èÍý¤ò¸Æ¤Ó½Ð¤¹(¥á¥½¥Ã¥É̾¤ò½¤Àµ¤¹¤ì¤Ð¡¢°ì½ï¤Ë½¤Àµ¤µ¤ì¤ë)
¡¡¡¡¡¡¡¡¡¡¡¡DestroyBullet(col);


            // ¿¯Æþ¤·¤Æ¤­¤¿¥³¥é¥¤¥À¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë Bullet ¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤¿¤é¼èÆÀ¤·¤Æ Bullet ·¿¤ÎÊÑ¿ô¤ËÂåÆþ


 ¡¡         // bullet ÊÑ¿ô¤Ë Bullet ¥¹¥¯¥ê¥×¥È¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ë¤Ê¤é

            
            // HP¤Î¹¹¿·½èÍý¤È¥¨¥Í¥ß¡¼¤ÎÇ˲õ³Îǧ¤Î½èÍý¤ò¸Æ¤Ó½Ð¤¹(UpdateHp ¥á¥½¥Ã¥É¤ËÁ÷¤ë°ú¿ô¤Î¾ðÊó¤òÄɲÃ)
                UpdateHp();
            }
        }
    }

    /// <summary>
    /// Hp¤Î¹¹¿·½èÍý¤È¥¨¥Í¥ß¡¼¤ÎÇ˲õ³Îǧ½èÍý
    /// </summary>
    private void UpdateHp()¡¡¡¡¡¡//¡¡<=  ¼õ¤±¼è¤ë¾ðÊóÍѤΰú¿ô¤òÄɲÃ
    {

        // hp¤Î¸º»»½èÍý(¸ÇÄêÃͤò¼õ¤±¼è¤Ã¤¿¾ðÊ󤫤éÍøÍѤ¹¤ë·Á¤ËÊѤ¨¤ë)
        


        if (hp <= 0) {
            hp = 0;

            // ¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÇ˲õ¤¹¤ë
            Destroy(gameObject);
        } else {

            Debug.Log("»Ä¤ê Hp : " + hp);
        }
    }
}



EnemyController.cs



£µ¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡½¤Àµ¤¬´°Î»¤·¤Þ¤·¤¿¤Î¤Ç¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢Àè¤Û¤É¤ÈƱ¤¸¤è¤¦¤Ë¥¨¥Í¥ß¡¼¤Ë¥Ð¥ì¥Ã¥È¤ò¤Ö¤Ä¤±¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
Àè¤Û¤É¤Î¸ÇÄêÃͤÎÃͤǤϤʤ¯¡¢¥Ð¥ì¥Ã¥È¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Bullet ¥¹¥¯¥ê¥×¥È¤ËÀßÄꤷ¤¿¹¶·âÎÏ(bulletPower ÊÑ¿ô)ʬ¤º¤Ä Hp ¤¬¸º»»¤·¤Æ¤¤¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
bulletPower ÊÑ¿ô¤ÎÃͤòÊѹ¹¤·¤Æ¡¢²¿²ó¤«»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


¡ã¼Â¹ÔÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡°Ê¾å¤Î¤³¤È¤«¤é¡¢¥¹¥¯¥ê¥×¥È¤òÄ̤¸¤Æ¡¢Ê̤Υ¹¥¯¥ê¥×¥È¤Î¾ðÊó¤òÍøÍѤ¹¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
¤³¤Î½èÍý¤¬´ðËÜŪ¤Ê½èÍý¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤È¥¤¥á¡¼¥¸¤·¤Æ¡¢½èÍý¤Îή¤ì¤ò¤Ä¤«¤ó¤Ç¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£


£²£´¡¥½èÍý¤ò´Ê·é¤Ë½ñ¤¯ÊýË¡¤ò¹Í¤¨¤ë

£±¡¥Àß·×


¡¡¿·¤·¤¯ OnTriggerEnter2D ¥á¥½¥Ã¥É¤ËÄɲä·¤¿½èÍý¤ÎÉôʬ¤ò´Ê·é¤Ëµ­½Ò¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢³Ø½¬¤·¤Þ¤¹¡£

¡ãÂоݤνèÍý¡ä
  Bullet bullet = col.gameOnject.GetComponent<Bullet>();

  if(bullet != null) {
      UpdateHp(bullet);
  }

¡¡¤Þ¤º¤³¤Î½èÍý¤ÎɬÍ×À­¤Ç¤¹¤¬¡¢Ëü¤¬°ì¡¢GetComponent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤¿·ë²Ì¡¢Bullet ¥¹¥¯¥ê¥×¥È¤¬¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢bullet ÊÑ¿ô¤Ë¤Ï¾ðÊó¤¬ÂåÆþ¤µ¤ì¤º null ¤Î¾õÂ֤ˤʤê¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¼¡¤Î¹Ô¤Î if ʸ¤Ë¤è¤ë null ¤Î³Îǧ¤¬¤Ê¤¤¤È¡¢null ¤ÎÊÑ¿ô¤òÍøÍѤȤ·¤¿»þÅÀ¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¥²¡¼¥à¤¬Ää»ß¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ê³Îǧ¤ÎÊýË¡¤ò null ¥Á¥§¥Ã¥¯¤È¤¤¤¤¡¢ÊÑ¿ô¤ËÃͤ¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤¿¾å¤Ç½èÍý¤ò¹Ô¤¦¤³¤È¤¬½ÅÍפˤʤäƤ¤¤Þ¤¹¡£

¡¡º£²ó³Ø½¬¤¹¤ë TryGetComponent ¥á¥½¥Ã¥É¤Ï¡¢GetComponent ¥á¥½¥Ã¥É¤Î½èÍý¤È if ʸ¤Î null ¥Á¥§¥Ã¥¯¤ò°ì½ï¤Ë¹Ô¤Ã¤Æ¤¯¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¤Î¤Ç¡¢¤³¤Á¤é¤òÍøÍѤ·¤Æ½èÍý¤ò´Ê·é¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¤Ë¤Ï¡¢¤³¤Î½èÍý¤¬¤É¤Î¤è¤¦¤ËÆ°¤¤¤Æ¤¤¤ë¤Î¤«¤òÇÄ°®¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£


£²¡¥¡ãTryGetComponent ¥á¥½¥Ã¥É¤È out ¥­¡¼¥ï¡¼¥ÉÀë¸À¡ä


¡¡Unity2019.2°Ê¹ß¤ËÄɲ䵤줿¥á¥½¥Ã¥É¤Ç¤¹¡£½èÍý·ë²Ì¤È¤·¤Æ bool ·¿¤ÇÌá¤êÃͤòÊÖ¤·¤Æ¤¯¤ì¤Þ¤¹¡£
¤³¤Î¤È¤­¤Î½èÍý·ë²Ì¤È¤¤¤¦¤Î¤Ï¡¢»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î·¿¤Î¼èÆÀ¤ò¹Ô¤¤¡¢¤½¤ì¤¬¼èÆÀ¤Ç¤­¤ì¤Ðtrue¡¢¼èÆÀ¤Ç¤­¤Ê¤±¤ì¤Ðfalse¤¬Ìá¤ê¤Þ¤¹¡£

¡¡¤Þ¤¿ out ¥­¡¼¥ï¡¼¥É¤Ë¤è¤ëÀë¸À¤¬¤¢¤ê¤Þ¤¹¡£
¡¡out ¥­¡¼¥ï¡¼¥ÉÀë¸À¤ò¹Ô¤¦¤È¡¢out ¤òÉÕ¤±¤¿°ú¿ô¤Ç»ØÄꤷ¤¿ÊÑ¿ô¤Ï¥á¥½¥Ã¥ÉÆâ¤Çɬ¤º·ë²Ì¤¬Æþ¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¤â¤Î¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢½èÍý·ë²Ì¤ÎÌá¤êÃͤ¬ true ¤Î¾ì¹ç¤Ë¤Ïɬ¤º¡¢¤³¤Î out ¤Î¸å¤ËÀë¸À¤·¤¿ÊÑ¿ôÆâ¤Ë·¿¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£

if(col.gameObject.TryGetComponent(out Bullet bullet)) {

¡¡º£²ó¤Ï¤³¤Î¤è¤¦¤Ê½èÍý¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£col ÊÑ¿ô¤Î»ý¤Ä collider ¾ðÊ󤫤é gameObject¡Ê¤Ä¤Þ¤ê¥Ð¥ì¥Ã¥È¤Ç¤¹¡Ë¤Ø¤È¥¢¥¯¥»¥¹¤·¡¢¤½¤Î gameObject ¤ËÂФ·¤Æ TryGetComponent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹¡£

¡¡out°Ê¹ß¤Ë¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¼èÆÀ¤·¤¿¤¤·¿¤ÈÊÑ¿ô¤òÀë¸À¤·¤Þ¤¹¡£º£²ó¤Ï¡¢ Bullet ·¿¤Î bullet ÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤­¤Þ¤¹¡£

¡¡¤â¤·¤â¤³¤Î TryGetComponent ¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì¤¬ true ¤Ç¤¢¤ë¤Ê¤é¤Ð¡¢¤Ä¤Þ¤ê¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë Bullet ¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢
out ¤È¤·¤ÆÍÑ°Õ¤·¤¿ bullet ÊÑ¿ô¤Ë Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Æ¡¢¤µ¤é¤Ë¡¢if ʸÆâ¤Ë½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
¤Þ¤¿ if ʸÆâ¤Î´Ö¤Ï¤³¤Î bullet ÊÑ¿ô¤¬»ÈÍѤǤ­¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¡Ê¥¹¥³¡¼¥×¤¬ifʸ¥Ö¥í¥Ã¥¯Æâ¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡Ë

¡¡TryGetComponent ¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì¤¬ false ¤Î¾ì¹ç¤Ë¤Ï Bullet ¥¹¥¯¥ê¥×¥È¤Î¼èÆÀ¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¤¿¤á¡¢bullet ÊÑ¿ô¤Ï null ¤Î¤Þ¤Þ¤Ç¡¢false ¤¬·ë²Ì¤È¤·¤ÆÌá¤ê¡¢
¤³¤ÎifʸÆâ¤Î½èÍý¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ç½ªÎ»¤·¤Þ¤¹¡£

¡¡¤Ä¤Þ¤ê¡¢Àè¤Û¤É¤Þ¤Ç¡¢½èÍý¤òʬ¤±¤Æµ­½Ò¤·¤Æ¤¤¤¿ÆâÍƤò¡¢£±¤Ä¤Î½èÍý¤È¤·¤Æ¤Þ¤È¤á¤Æµ­½Ò¤¹¤ë¤³¤È¤¬½ÐÍè¤Æ¤¤¤ë»ö¤¬Ê¬¤«¤ê¤Þ¤¹¡£


¡¡¤Ê¤ª TryGetComponent ¥á¥½¥Ã¥É¤Ë¤ÏÊ£¿ô¤Î½ñ¼°¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Ï²¼µ­¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

»²¹Í
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Component.TryGetComponent
https://docs.unity3d.com/ScriptReference/Component...


£³¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢if ʸ¤Î½èÍý¤ò TryGetComponent ½èÍý¤Ë½ñ¤­´¹¤¨¤Æ½èÍý¤ò´Ê·é²½¤¹¤ë


¡¡³ºÅö¤Î½èÍý¤ò¡¢TryGetComponent ¥á¥½¥Ã¥É¤È out ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤¿½èÍý¤ò½ñ¤­´¹¤¨¤Æ´Ê·é¤Ëµ­½Ò¤·¤Þ¤¹¡£
½èÍý¤ÎÆâÍƤòÍý²ò¤·¤¿¾å¤Ç½ñ¤­´¹¤¨¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£


EnemyController.cs



£´¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡½èÍý¤ò´Ê·é¤Ë½ñ¤­Âؤ¨¤¿¤À¤±¤Ç¤¹¤Î¤Ç¡¢Æ±¤¸¤è¤¦¤ËÆ°¤¯¤Ï¤º¤Ç¤¹¡£
¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ³Îǧ¤ò¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£

¡¡
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£

¡¡¼¡¤Ï¡¡¼ê½ç£±£²¡¡¡¼¥×¥ì¥¤¥ä¡¼¤ÎµòÅÀ¤Î¼ÂÁõ¡¼¡¡¤Ç¤¹¡£

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹