i-school - £²£Ä¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°¥²¡¼¥à¡¡È¯Å¸£²£¸
¡¡¥Ð¥ì¥Ã¥ÈÁªÂò¥Ü¥¿¥ó¤Î BulletData ¤ÎÀßÄê¤Ë´ð¤Å¤¤¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ë±þ¤¸¤Æ¡¢È¯¼Í¤¹¤ë¥Ð¥ì¥Ã¥È¤ÎÀ­Ç½¤ò¼«Æ°Åª¤ËÊѹ¹¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£

¡ã¼ÂÁõÆ°²è­¡¡¡£³Êý¸þ¡¢£µÊý¸þ¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯

¡ã¼ÂÁõÆ°²è­¢¡¡¥×¥ì¥¤¥ä¡¼¤Ë¶á¤¤¥¨¥Í¥ß¡¼¤òÄÉÈø¡¢´ÓÄÌ¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


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

ȯŸ£²£¸¡¡¡Ý¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ë¤è¤ëÀ­Ç½Êѹ¹¤ÎÄɲáÝ
£µ£µ¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ë¹ç¤ï¤»¤Æ¡¢£±Êý¸þ¡¢£³Êý¸þ¡¢£µÊý¸þ¤ÎÃÆÆ»¤ÇÀ¸À®¤¹¤ë½èÍý¤òÄɲ乤ë
£µ£¶¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤È Bullet ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¡¢¼«Æ°ÄÉÈø¤¹¤ë¥Ð¥ì¥Ã¥È¤Î½èÍý¤òÄɲ乤ë



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

¡¡¡¦switch ʸ¤Î¼ÂÁõÎã
¡¡¡¦ÇÛÎó¤Î³èÍÑÊýË¡¤Î¼ÂÁõÎã
¡¡¡¦GameObject.FindGameObjectsWithTag ¥á¥½¥Ã¥É
¡¡¡¦Vector3.MoveTowards ¥á¥½¥Ã¥É
¡¡¡¦Vector3.sqrMagnitude ÊÑ¿ô



£µ£µ¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ë¹ç¤ï¤»¤Æ¡¢£±Êý¸þ¡¢£³Êý¸þ¡¢£µÊý¸þ¤ÎÃÆÆ»¤ÇÀ¸À®¤¹¤ë½èÍý¤òÄɲ乤ë

£±¡¥Àß·×


¡¡¥Ð¥ì¥Ã¥È¤Î¥Ç¡¼¥¿¤Ë¤Ï¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤ÎÅÐÏ¿¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾ðÊó¤ò³èÍѤ·¤Æ¡¢À¸À®¤¹¤ë¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤ò¼«Æ°Åª¤Ëʬ´ô¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¥Ð¥ì¥Ã¥È¤ÎÀ¸À®½èÍý¤Ï PlayerController ¥¹¥¯¥ê¥×¥È¤Ë¤ª¤¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤Î½èÍý¤ò½¤Àµ¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤òʬ´ô¾ò·ï¤È¤·¡¢¥Ð¥ì¥Ã¥È¤Î¥Ç¡¼¥¿¤Ë¹ç¤ï¤»¤ÆÀ¸À®¤¹¤ë¥Ð¥ì¥Ã¥È¤ÎÆâÍƤòÊѲ½¤µ¤»¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
ʬ´ô¾ò·ï¤Ë¤Ï switch ʸ¤òÍøÍѤ·¤Þ¤·¤ç¤¦¡£¾ò·ï¼°¤Ë¤Ï¸½ºß»ÈÍѤ·¤Æ¤¤¤ë¥Ð¥ì¥Ã¥È¤Î¾ðÊó¤òÍøÍѤ·¤Þ¤¹¡£
¤³¤Î¾ðÊ󤬤ɤΥ¹¥¯¥ê¥×¥È¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤ë¤«¡¢³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£


£²¡¥PlayeyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ë±þ¤¸¤¿¥Ð¥ì¥Ã¥È¤òÀ¸À®¤¹¤ë½èÍý¤òÄɲ乤ë


¡¡¥Ð¥ì¥Ã¥È¤òÀ¸À®¤¹¤ë GenerateBullet ¥á¥½¥Ã¥É¤Î°ú¿ô¤È½èÍý¡¢¡¢¤ª¤è¤Ó¡¢¤³¤Î¥á¥½¥Ã¥É¤ÇÍøÍѤ¹¤ë¥×¥ì¥Õ¥¡¥ÖÍѤÎÊÑ¿ô¤Î·¿¤ò½¤Àµ¤·¤Þ¤¹¡£
¤¤¤Þ¤Þ¤Ç¤Ï GameObject ·¿¤ÇÀ¸À®¤·¤Æ¡¢¤½¤Î¸å¡¢Bullet ¥¯¥é¥¹¤ò¼èÆÀ¤·¤Æ ShotBullet ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢
°ÊÁ°³Ø½¬¤·¤¿¼«ºî¥¯¥é¥¹(¤³¤³¤Ç¤Ï Bullet ¥¯¥é¥¹)¤ÇÀ¸À®¤·¤Æ¡¢¤½¤Î¤Þ¤Þ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤Ç¤­¤ë½èÍý¤ËÊѹ¹¤·¤Þ¤·¤ç¤¦¡£

¡¡¤½¤Î¤¿¤á¤Ë¤Ï¡¢¥×¥ì¥Õ¥¡¥Ö¤Î·¿¤ò GameObject ·¿¤Ç¤Ï¤Ê¤¯¡¢Bullet ·¿¤ËÊѹ¹¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤âÊѹ¹¤·¤Þ¤¹¡£
¤³¤ì¤Ï Instantiate ¥á¥½¥Ã¥É¤ÎÌá¤êÃͤò³èÍѤ·¤Æ¤¤¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤ÈÉü½¬¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£



¡¡¤Þ¤¿¥Ð¥ì¥Ã¥È¤òÀ¸À®¤¹¤ëÁ°¤Ë¡¢¸½ºß»ÈÍѤ·¤Æ¤¤¤ë¥Ð¥ì¥Ã¥È¤Î¥Ç¡¼¥¿¤«¤é¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤ò¾ò·ï¤Ëʬ´ô¤¹¤ëÀ¸À®½àÈ÷¤Î¥á¥½¥Ã¥É¤òÍÑ°Õ¤·¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤Ç¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤òÆÃÄꤷ¡¢¤½¤ì¤«¤é¡¢¥Ð¥ì¥Ã¥È¤òÀ¸À®¤¹¤ë¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤Ë½èÍý¤Îή¤ì¤òÊѹ¹¤·¤Þ¤¹¡£
¤³¤Î¤è¤¦¤ÊÀ߷פˤ·¤Æ¤ª¤¯¤³¤È¤Ç¡¢À¸À®¤¹¤ë¥á¥½¥Ã¥É¤Ï£±¤Ä¤¢¤ì¤Ð¡¢¤½¤ì¤òÍøÍѤ·¤Æ¤¤¤¯¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡switch ʸ¤Ë¤è¤ëʬ´ôÆâ¤Ç£³Êý¸þ¤È£µÊý¸þ¤Ë¥Ð¥ì¥Ã¥È¤òÀ¸À®¤¹¤ë½èÍý¤Ë¤Ï for ʸ¤ò³èÍѤ·¤Æ¤¤¤Þ¤¹¡£
¥Ð¥ì¥Ã¥È¤òÀ¸À®¤¹¤ë½èÍý¤ò·«¤êÊÖ¤¹¤¿¤Ó¤Ëȯ¼Í¤¹¤ëÊý¸þ¤ÎºÂɸ¤ò¾¯¤·¤º¤Ä¤º¤é¤¹¤³¤È¤Ç¡¢Àð¾õ¤Ëȯ¼Í¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢¥Ö¥í¥Ã¥¯Êø¤·¤Î¥²¡¼¥à¤Ê¤É¤Ç¤âÍøÍѤ·¤Æ¤¤¤ë½èÍý¤Ç¤¹¡£

¡¡»Ä¤ë£²¤Ä¤Î¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ï£±¤Ä¤À¤±¥Ð¥ì¥Ã¥È¤òÀ¸À®¤¹¤ë¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
switch ʸ¤Ç¤ÏƱ¤¸ÆâÍƤò½èÍý¤¹¤ë¾ì¹ç¡¢case ¤ò³¤±¤Æµ­½Ò¤¹¤ë¤³¤È¤Ë¤è¤Ã¤ÆƱ¤¸½èÍý¤ò¼Â¹Ô¤Ç¤­¤Þ¤¹¡£


PlayerController.cs

¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£


¡¡¥¹¥¯¥ê¥×¥È½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


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


¡¡¥²¡¼¥à¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¢»Ï¤á¤«¤é¥Ð¥ì¥Ã¥È¤Î¥³¥¹¥È¤ò¤¹¤Ù¤Æ»Ùʧ¤¨¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á GameData ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤ê¡¢
TotalExp ¤ÎÃͤò 300 ¤Ê¤É¤ÎÂ礭¤Ê¿ôÃͤËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£¤¹¤Ù¤Æ¤Î¥Ð¥ì¥Ã¥ÈÁªÂò¥Ü¥¿¥ó¤ÎÆ°ºî¤ò³Îǧ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¥Ç¥Ð¥Ã¥°¤ò¹Ô¤¦ºÝ¤Ë¤Ï¡¢¤³¤¦¤¤¤Ã¤¿µ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤Ç¥¹¥à¡¼¥¹¤Ê¥Ç¥Ð¥Ã¥°¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¥Ð¥ì¥Ã¥È¤Î¼ïÎब¡¢Player_Normal ¤È Player_Blaze ¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥¿¥Ã¥×¤·¤¿Êý¸þ¤Ë£±¤Ä¤À¤±¥Ð¥ì¥Ã¥È¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
Player_3ways_Piercing ¤È Player_5ways_Normal ¤Ï¤½¤ì¤¾¤ì¡¢¥¿¥Ã¥×¤·¤¿Êý¸þ¤ËÂФ·¤ÆÀð¾õ¤Ë£³¤Ä¡¢£µ¤Ä¤Î¥Ð¥ì¥Ã¥È¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
¥Ð¥ì¥Ã¥È¤Î¥Ç¡¼¥¿¤ò³Îǧ¤·¤Ê¤¬¤é¥Ç¥Ð¥Ã¥°¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£


¡ã£³Êý¸þ¡ä



¡ã£µÊý¸þ¡ä



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


¡¡Â³¤¤¤Æ¤Ï¡¢Player_Blaze ¤Ë¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¤ò¼«Æ°Åª¤ËÀßÄꤷ¤Æȯ¼Í¤¹¤ëµ¡Ç½¤È¡¢
Player_3ways_Piercing ¤Ë¡¢¥¨¥Í¥ß¡¼¤ò´ÓÄ̤·¤Æ¤¤¤¯µ¡Ç½¤ò¡¢¤½¤ì¤¾¤ìÄɲä·¤Þ¤¹¡£


£µ£¶¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤È Bullet ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¡¢¼«Æ°ÄÉÈø¤¹¤ë¥Ð¥ì¥Ã¥È¤Î½èÍý¤òÄɲ乤ë

£±¡¥¥¨¥Í¥ß¡¼¤ò´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¤ÎÀß·×


¡¡¤³¤Î¼ê½ç¤Ç¤Ï¥¨¥Í¥ß¡¼¤ò´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¤È¡¢¥¨¥Í¥ß¡¼¤ò¼«Æ°ÄÉÈø¤¹¤ë¥Ð¥ì¥Ã¥È¤Î½èÍý¤ò¡¢¤½¤ì¤¾¤ìÄɲä·¤Þ¤¹¡£

¡¡´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¤Î¼ÂÁõÊýË¡¤Ï¿§¡¹¤ÊÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
º£²ó¤Ï¥¨¥Í¥ß¡¼Â¦¡¢¤Ä¤Þ¤ê¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤Ç¤Ö¤Ä¤«¤Ã¤Æ¤­¤¿¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤òȽÄꤷ¤Æ¡¢
ÆÃÄê¤Î¥Ð¥ì¥Ã¥È¤Î¤ß¤òÇ˲õ¤¹¤ë¤è¤¦¤Ë½èÍý¤òÊѹ¹¤·¤Þ¤¹¡£º£²ó¤Ï¡¢Normal ¤È̾Á°¤Ë¤Ä¤¤¤Æ¤¤¤ë¼ïÎà¤Î¥Ð¥ì¥Ã¥È¤Î¤ß¤òÇ˲õ¤·¤Þ¤¹¡£
¾¤Ë¤Ï¡¢¥Ð¥ì¥Ã¥È¤Î Tag ¤ÎÀßÄê¤òưŪ¤ËÊѹ¹¤·¤Æ¡¢¤½¤ì¤ò¥¨¥Í¥ß¡¼Â¦¤ÇȽÄꤷ¤ÆÇ˲õ¤¹¤ë¥Ð¥ì¥Ã¥È¤Îʬ´ô¤ò¹Ô¤¦¡¢¤È¤¤¤¦ÊýË¡¤â¤¢¤ê¤Þ¤¹¡£

¡¡¸½ºß¤Ï¤¹¤Ù¤Æ¤Î¥Ð¥ì¥Ã¥È¤òÇ˲õ¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï¤³¤ÎÉôʬ¤òºï½ü¤·¤Þ¤·¤ç¤¦¡£¤½¤¦¤¹¤ë¤³¤È¤Ç¾åµ­¤Îʬ´ô¤òÍøÍѤǤ­¤ë¾õÂ֤ˤʤê¤Þ¤¹¡£
¶ñÂÎŪ¤Ë¤Ï¡¢½é´ü¥Ð¥ì¥Ã¥È¤È¡¢£µÊý¸þ¤Î¥Ð¥ì¥Ã¥È¤Î¤ß¤¬´ÓÄ̤·¤Ê¤¤¥Ð¥ì¥Ã¥È¤Ë¤Ê¤ê¡¢»Ä¤ë£²¤Ä¤Ï¥¨¥Í¥ß¡¼¤ò´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡EnemyController ¥¹¥¯¥ê¥×¥È¤Ç¤Ï¤¹¤Ç¤Ë¡¢OnTriggerEnter2D ¥á¥½¥Ã¥É¤Ë¤ª¤¤¤Æ Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò
TryGetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¼èÆÀ¤·³èÍѤ·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¾ðÊó¤ò¤µ¤é¤Ë³èÍѤ·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£

¡¡Bullet ¥¹¥¯¥ê¥×¥È¤Ë¤¢¤ë BulletData ¤Î¾ðÊó¤Ï public ÊÑ¿ô¤Ç´ÉÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
³°Éô¤Î¥¹¥¯¥ê¥×¥È¡Ê¤³¤Î¥±¡¼¥¹¤Ç¤¢¤ì¤Ð¡¢EnemyController ¥¹¥¯¥ê¥×¥È¡Ë¤Ç¤âÍøÍѤǤ­¤ë¾ðÊó¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
BulletData ¤Î¾ðÊ󤬤¢¤ì¤Ð¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¡¢¤½¤·¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î¹¶·âÎϤÎÃͤâÍøÍѤǤ­¤Þ¤¹¡£


£²¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¤Î½èÍý¤òÄɲ乤ë


¡¡À߷פ˴ð¤Å¤¤¤Æ¡¢½èÍý¤Î½¤Àµ¾ì½ê¤òÆÃÄꤷ¤Æ¡¢½èÍý¤òÄɲä·¤¿¤ê¡¢ºï½ü¤·¤¿¤ê¤·¤Æ¤¯¤À¤µ¤¤¡£
¤É¤ó¤Ê¥í¥¸¥Ã¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤Ð¤¤¤¤¤«¤ò¹Í¤¨¤Æ¡¢½èÍý¤Îή¤ì¤ò¤ß¤Ê¤¬¤é¼ÂÁõ¤ò¹Ô¤¦¤³¤È¤ò¿´¤¬¤±¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


EnemyController.cs


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


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


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ½èÍý¤ò¸«Ä¾¤·¤¿¤é¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò¤·¤Þ¤¹¡£
¥Ð¥ì¥Ã¥È¤Î¼ïÎब Player_Blaze ¤« Player_3ways_Piercing ¤Î¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë¤È¡¢¥¨¥Í¥ß¡¼¤Ë¤Ö¤Ä¤«¤Ã¤Æ¤âÇ˲õ¤µ¤ì¤º´ÓÄ̤¹¤ë¥Ð¥ì¥Ã¥È¤òȯ¼Í¤·¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥¨¥Í¥ß¡¼¤Î¸åÊý¤Ë¤¤¤ëÊ̤Υ¨¥Í¥ß¡¼¤Ë¤â¥Ð¥ì¥Ã¥È¤¬¤Ö¤Ä¤«¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


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


¡¡Â³¤±¤Æ¡¢¥¨¥Í¥ß¡¼¤ò¼«Æ°ÄÉÈø¤¹¤ë¥Ð¥ì¥Ã¥È¤ò¼ÂÁõ¤·¤Æ¤¤¤­¤Þ¤¹¡£


£´¡¥¥¨¥Í¥ß¡¼¤ò¼«Æ°ÄÉÈø¤¹¤ë¥Ð¥ì¥Ã¥È¤ÎÀß·×


¡¡¥Ð¥ì¥Ã¥È¤¬¥¨¥Í¥ß¡¼¤ò¼«Æ°ÄÉÈø¤¹¤ë¤¿¤á¤ÎÀ߷פǤ¹¤¬¡¢¤Þ¤º¤Ï¤É¤¦¤¤¤Ã¤¿¾ò·ï¤Ç¼«Æ°ÄÉÈø¤¹¤ë¤Î¤«¹Í¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
º£²ó¤Ï¥×¥ì¥¤¥ä¡¼¤Î°ÌÃÖ¤«¤é¸«¤ÆºÇ¤â¶á¤¤¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¤ò¼«Æ°ÄÉÈø¤ÎÂоݤȤ¹¤ë¤³¤È¤ò¾ò·ï¤òÀßÄꤷ¤Þ¤¹¡£

¡¡¹Í¤¨¤Ê¤¤¤È¤Ê¤é¤Ê¤¤¤Î¤Ï¡¢ºÇ¤â¶á¤¤¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¾ðÊó¤ò¤É¤Î¤è¤¦¤Ë¼èÆÀ¤¹¤ë¤«¡¢¤Ç¤¹¡£
¥¨¥Í¥ß¡¼¤Ï¾ï¤ËÆ°¤¤¤Æ¤¤¤Þ¤¹¤·¡¢¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë¤È¤­¤Ë¡¢²¿ÂΤΥ¨¥Í¥ß¡¼¤¬²èÌÌÆâ¤Ë¤¤¤ë¤Î¤«¡¢¤½¤ì¤âËè²óÊѲ½¤¹¤ë¾ðÊó¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤³¤¦¤¤¤Ã¤¿¥±¡¼¥¹¤Ç¤Ï¡¢¤½¤ÎÅÔÅÙ¡¢¤Ä¤Þ¤ê¡¢¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë¤¿¤Ó¤Ë²èÌÌÆâ¤Ë¤¤¤ë¤¹¤Ù¤Æ¤Î¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¾ðÊó¤ò¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¤½¤¦¤¹¤ì¤Ð¡¢¤½¤Î»þÅÀ¤Ç¥²¡¼¥àÆâ¤Ë¤¤¤ë¥¨¥Í¥ß¡¼¤Î¿ô¤È¡¢¤½¤Î¥¨¥Í¥ß¡¼¤´¤È¤Î°ÌÃÖ¾ðÊó¤òºÇ¿·¤Î¾õÂ֤ǼèÆÀ½ÐÍè¤Þ¤¹¡£

¡¡¤³¤Î°ÌÃÖ¾ðÊó¤ò¸µ¤Ë¡¢¤½¤ì¤¾¤ì¤Î¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¾ðÊó¤òÈæ³Ó¤·¡¢ºÇ¤â¥×¥ì¥¤¥ä¡¼¤Ë¶á¤¤ºÂɸ¾ðÊó¤ò»ý¤Ã¤Æ¤¤¤ë¥¨¥Í¥ß¡¼¤ò¡ÖºÇ¤â¶á¤¤¡×¥¨¥Í¥ß¡¼¤È¤·¤ÆȽÄꤷ¤Þ¤¹¡£
¤½¤·¤Æ¤½¤Î°ÌÃ֤˸þ¤«¤Ã¤Æ¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¡¢¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë¤¿¤Ó¤Ë¡¢¡ÖºÇ¤â¶á¤¤¡×¥¨¥Í¥ß¡¼¤òȽÄꤷ¤Æ¼«Æ°Åª¤ËÄÉÈø¤¹¤ë¥Ð¥ì¥Ã¥È¤ò¼ÂÁõ½ÐÍè¤Þ¤¹¡£

¡¡¤Ê¤ª¡¢¼«Æ°ÄÉÈø¤È¤¤¤¦Ì¾¾Î¤Ç¤¹¤¬¡¢¥Ð¥ì¥Ã¥È¤¬¤º¤Ã¤È¥¨¥Í¥ß¡¼¤òÄɤ¤¤«¤±¤ë¡¢¤È¤¤¤¦µóÆ°¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
º£²ó¤ÎÄÉÈøµ¡Ç½¤Ï¡¢²èÌ̤ΤɤΰÌÃÖ¤ò¥×¥ì¥¤¥ä¡¼¤¬¥¿¥Ã¥×¤·¤Æ¤â¡¢ºÇ¤â¶á¤¤¥¨¥Í¥ß¡¼¤òȽÄꤷ¤Æ¡¢¤½¤Á¤é¤Ë¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë½èÍý¤Î¤³¤È¤ò¡Ö¼«Æ°ÄÉÈø¡×¤È¤·¤Æ¤¤¤Þ¤¹¡£



¡¡¥²¡¼¥àÆâ¤Ë¤¤¤ë¥¨¥Í¥ß¡¼¤ò¤¹¤Ù¤Æ¼èÆÀ¤¹¤ëÊýË¡¤Ç¤¹¤¬¡¢¥¨¥Í¥ß¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï Enemy ¤È¤¤¤¦ Tag ¤ÎÀßÄê¾ðÊ󤬤¢¤ê¤Þ¤¹¤Î¤Ç
¤³¤Î¾ðÊó¤ò³èÍѤ¹¤ë GameObject.FindGameObejctsTag ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¼èÆÀ¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£(Objects ¤ÈÊ£¿ô·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ëÉôʬ¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤)

¡¡¤³¤Î¥á¥½¥Ã¥É¤ÏÌá¤êÃͤȤ·¤Æ¡¢»ØÄꤷ¤¿ Tag ¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò¡¢GameObject ·¿¤ÎÇÛÎó¤È¤·¤ÆÌᤷ¤Æ¤¯¤ì¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢º¸ÊÕ¤Ë GameObject ·¿¤ÎÇÛÎóÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¤½¤Î»þÅÀ¤Ç¥²¡¼¥àÆâ¤Ë¸ºß¤·¤Æ¤¤¤ë Enemy ¤Î Tag ¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤òÇÛÎó¤È¤·¤Æ¼èÆÀ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£

¡ã¼ÂÁõÎã¡ä
  // ¥²¡¼¥àÆâ¤Ë¤¤¤ë Enemy ¤Î Tag ¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¤¹¤Ù¤Æ¼èÆÀ¤·¤ÆÇÛÎó¤È¤·¤ÆÌ᤹
  GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");

¡¡¤³¤ÎÇÛÎó¤ËÆþ¤Ã¤Æ¤¤¤ë¥¨¥Í¥ß¡¼¤Î¾ðÊó¤Ç¤¹¤¬¡¢ÇÛÎóÆâ¤Î½çÈÖ¤ÏËè²ó¥Ð¥é¥Ð¥é¤Ç¤¹¡£
Enemy ¤Î Tag ¤¬¤Ä¤¤¤Æ¤¤¤ëÉôʬ¤Ç¤Î¤ß¼èÆÀ¤·¤Æ¤¤¤ë¤Î¤Ç¡¢²¿¤«¤ò´ð½à¤Ëʤ٤ƼèÆÀ¤ò¹Ô¤Ã¤Æ¤¤¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¡¡¤³¤Î½èÍý¤ò¼Â¹Ô¤¹¤ì¤Ð¤¹¤Ù¤Æ¤Î¥¨¥Í¥ß¡¼¤Î¾ðÊó¼«ÂΤϼèÆÀ¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤ÏºÇ½é¤Ë¡¢Èæ³Ó¤Î´ð½à¤È¤Ê¤ë°ÌÃÖ¾ðÊó¤ò£±¤Ä¡¢ÊÑ¿ô¤òÍÑ°Õ¤·¤ÆÀßÄꤷ¤Þ¤¹¡£
¤¢¤¯¤Þ¤Ç¤â´ð½àÃͤʤΤǡ¢Í×ÁÇÈֹ椬 0 ¤Î¾ðÊó¤òËè²óÀßÄꤹ¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤Ç¤·¤ç¤¦¡£

¡¡¤¢¤È¤Ï¡¢¤³¤Î°ÌÃÖ¾ðÊó¤ò£±¤Ä¤º¤Ä½çÈ֤˼è¤ê½Ð¤·¤Æ¡¢´ð½àÃͤȤʤäƤ¤¤ë°ÌÃÖ¾ðÊó¤ò¤è¤ê¾®¤µ¤¤¤«¤É¤¦¤«(¥×¥ì¥¤¥ä¡¼Â¦¤Ë¶á¤¤¤«)Èæ³Ó¤·¤Æ¤¤¤±¤Ð¡¢
½èÍý¤¬½ªÎ»¤¹¤ë¤È¤­¤Ë¤Ï¡¢´ð½àÃͤȤ·¤ÆÀßÄꤷ¤¿¾ðÊó¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤ËÂФ·¤Æ¡ÖºÇ¤â¶á¤¤¡×¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¾ðÊó¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡¤³¤³¤Þ¤Ç¼èÆÀ¤Ç¤­¤ì¤Ð¡¢¤¢¤È¤Ï¤³¤Î°ÌÃÖ¾ðÊó¤òÍøÍѤ·¤Æ¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤¿¤À¤·¡¢¥Ð¥ì¥Ã¥È¤Îȯ¼Í¤Ë¤Ï¡¢¡Ö¥×¥ì¥¤¥ä¡¼¤Î°ÌÃÖ¾ðÊó¡×¤È¡Ö¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¾ðÊó¡×¤Îº¹Ê¬¤ò»»½Ð¤·¤Ê¤¤¤È¡ÖÊý¸þ¡×¤Î¾ðÊ󤬤ʤ¤¤¿¤á¡¢
Rigidbody2D ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î AddForce ¥á¥½¥Ã¥É¤Ï¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¡£

¡¡Bullet ¥¹¥¯¥ê¥×¥È¤Ë¤Ï¡Ö¥×¥ì¥¤¥ä¡¼¤Î°ÌÃÖ¾ðÊó¡×¤Ï¾ðÊó¤È¤·¤Æ¸ºß¤·¤Þ¤»¤ó¤Î¤Ç¡¢²þ¤á¤Æ¤½¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤«¡¢¤¢¤ë¤¤¤ÏÊ̤ÎÊýË¡¤Ç¥Ð¥ì¥Ã¥È¤ò°ÜÆ°¤µ¤»¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡¡º£²ó¤Ï¥×¥ì¥¤¥ä¡¼¤Î°ÌÃÖ¾ðÊó¤Ï¼èÆÀ¤»¤º¡¢ÄÉÈøÍѤΥХì¥Ã¥È¤Ë¸Â¤ê¡¢AddForce ¥á¥½¥Ã¥É¤Ç¤Ï¤Ê¤¯
Vector3 ·¿¤Î°·¤¨¤ë MoveTowards ¥á¥½¥Ã¥É¤ò Update ¥á¥½¥Ã¥É¤Ç¼Â¹Ô¤·¡¢¥Ð¥ì¥Ã¥È¤ò¥¨¥Í¥ß¡¼¤Î°ÌÃ֤˸þ¤«¤Ã¤Æ½ù¡¹¤Ë°ÜÆ°¤µ¤»¤ë½èÍý¤Ç¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡Update ¥á¥½¥Ã¥É¤âÄÉÈø¤¹¤ëÂоݤ¬¤¤¤ë¾ì¹ç(ÄÉÈøÍѤΥХì¥Ã¥È)¤Î¤ß¼Â¹Ô¤¹¤ë¤è¤¦¤Ë½èÍý¤òÀ©¸æ¤·¤Þ¤·¤ç¤¦¡£
¤½¤¦¤¹¤ì¤ÐÄÉÈøÍѤΥХì¥Ã¥È°Ê³°¤Î¥Ð¥ì¥Ã¥È¤Ç¤Ï Update ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤ë¤³¤È¤òÄä»ß¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
(À©¸æ¤·¤Ê¤¤¤È¡¢ÄÉÈøÍѰʳ°¤Î¥Ð¥ì¥Ã¥È¤â±Æ¶Á¤ò¼õ¤±¤Æ¤·¤Þ¤¤¡¢Àµ¾ï¤ËÄ̾ï¤Îȯ¼Í½èÍý¤¬¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£)


£µ¡¥Bullet ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¡¢¥Ð¥ì¥Ã¥È¤Î¼ïÎà¤Ë±þ¤¸¤Æ¼«Æ°ÄÉÈø¤¹¤ë¥Ð¥ì¥Ã¥È¤Î½èÍý¤òÄɲ乤ë


¡¡À߷פ˴ð¤Å¤¤¤Æ¡¢½èÍý¤ò¼ÂÁõ¤·¤Þ¤·¤ç¤¦¡£

¡¡Àë¸À¥Õ¥£¡¼¥ë¥É¤Ë¤Ï¡¢ÄÉÈøÍѤΥХì¥Ã¥È¤Î¤¿¤á¤Ë¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¾ðÊó¤òÂåÆþ¤¹¤ë¤¿¤á¤ÎÊÑ¿ô¤È¡¢
ÄÉÈøÍѤÎÂоݤ¬¤¤¤ë¤«¤É¤¦¤«¤ÎȽÄê¤ò¹Ô¤¦¤¿¤á¤ÎÊÑ¿ô¤ò¤½¤ì¤¾¤ìÍÑ°Õ¤·¤Æ¤ª¤­¤Þ¤¹¡£
¤½¤ì¤¾¤ì¤É¤Î¤è¤¦¤Ê·¿¤¬Å¬ÀڤǤ¢¤ë¤«¡¢½èÍý¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Ê¤¬¤é¸¡Æ¤¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


Bullet.cs

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



£¶¡¥¡ãGameObject.FindGameObjectsWithTag ¥á¥½¥Ã¥É¡ä


¡¡°ú¿ô¤Ç»ØÄꤷ¤¿Ì¾Á°¤Î Tag ¤ÎÀßÄꤵ¤ì¤Æ¤¤¤ëÊ£¿ô¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ¤·¡¢Ìá¤êÃͤòÍøÍѤ·¤ÆÇÛÎó¤È¤·¤ÆÌᤷ¤Æ¤¯¤ì¤ë½èÍý¤Ç¤¹¡£

  // ȯ¼Í»þ¤Ë¥²¡¼¥àÆâ¤Ë¤¤¤ë¥¨¥Í¥ß¡¼¤Î¾ðÊó¤ò¼èÆÀ
  GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy");

»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
GameObject.FindGameObjectsWithTag
https://docs.unity3d.com/ja/current/ScriptReferenc...
´Ý¤ÎÆâ¥Æ¥Ã¥¯ ÍÍ
¡ÚUnity¡Û¥¹¥¯¥ê¥×¥È¤Ç¥ª¥Ö¥¸¥§¥¯¥È¤ò¸«¤Ä¤±¤ë
https://marunouchi-tech.i-studio.co.jp/2266/


£·¡¥¡ãVector3.MoveTowards ¥á¥½¥Ã¥É¡ä


¡¡Âè1°ú¿ô¤ÎÃͤòµ¯ÅÀ¡¢Âè2°ú¿ô¤ÎÃͤòÌÜɸÅÀ¡¢Âè3°ú¿ô¤ÎÃͤò£±¥Õ¥ì¡¼¥à¤Î°Üư®ÅÙ(°ÜÆ°µ÷Î¥)¤È¤·¤Æ¡¢ÌÜɸÅÀ¤Þ¤Ç°ÜÆ°¤ò¹Ô¤¤¤Þ¤¹¡£
Âè1°ú¿ô¤ÎÃͤò¥Õ¥ì¡¼¥à¤´¤È¤Ë¹¹¿·¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢ÌÜɸÅÀ¤Þ¤Ç¤Î°ÜÆ°µ÷Î¥¤¬ÊѤï¤Ã¤Æ¤â¡¢Âè3°ú¿ô¤Ë»ØÄꤷ¤¿°Üư®ÅÙ¤ÇľÀþ°ÜÆ°¤ò¹Ô¤Ã¤Æ¤¯¤ì¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢Âè2°ú¿ô¤ÎÃͰʾå¤Ë¤Ï¿Ê¤à¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¡ãÍ×½ê¤Î¤ßÈ´¤­½Ð¤·¡ä
private void Update() {
 
    // £±¥Õ¥ì¡¼¥à¤´¤È¤ËºÂɸ¤ò¹¹¿·
    Vector3 currentPos = transform.position;

    // ¥Ð¥ì¥Ã¥È¤Î°ÜÆ°
    transform.position = Vector3.MoveTowards(currentPos, targetPos, Time.deltaTime / 10 * bulletData.bulletSpeed);
}


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3.MoveTowards
https://docs.unity3d.com/jp/current/ScriptReferenc...
¥í¥Ð¥á¥â - ÁǿͤÎUnity³Ð½ñ¤ÈʳƮµ­ ÍÍ
°ÜÆ°µ÷Î¥¤¬ÊѤï¤Ã¤Æ¤â¡¢»ØÄꤷ¤¿Â®ÅÙ¤ÇÅù®ľÀþ°ÜÆ°¤µ¤»¤¿¤¤
https://robamemo.hatenablog.com/entry/2018/02/14/1...


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


¡¡Player_Blaze ¤Î¥Ð¥ì¥Ã¥È¤òȯ¼Í¤¹¤ë¤È¡¢²èÌ̤ΤɤΰÌÃÖ¤ò¥¿¥Ã¥×¤·¤Æ¤â¡¢¼«Æ°Åª¤Ë¥×¥ì¥¤¥ä¡¼¤Ë¶á¤¤¥¨¥Í¥ß¡¼¤ò¥¿¡¼¥²¥Ã¥È¤È¤·¤Æ¥Ð¥ì¥Ã¥È¤òȯ¼Í¤·¤Þ¤¹¡£


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


¡¡¤Ê¤ª¡¢Player_Blaze ¤Î¥Ð¥ì¥Ã¥È¤â´ÓÄ̤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¡¢¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¤Ëα¤Þ¤ê¡¢»þ´Ö¤¬Íè¤ë¤Þ¤ÇÇ˲õ¤µ¤ì¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤ÎÊÕ¤ê¤Ï¼«Í³¤Ë¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤ÆÄ´À°¤·¤Æ¤¯¤À¤µ¤¤¡£ÄÉÈø¤¹¤ëÂоݤò¥×¥ì¥¤¥ä¡¼¤Ë¶á¤¤¥¨¥Í¥ß¡¼¤Ç¤Ï¤Ê¤¯¡¢±ó¤¤¥¨¥Í¥ß¡¼¤Ë¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤·¡¢
´ÓÄ̤·¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤â¤¤¤¤¤Ç¤·¤ç¤¦¡£¤¢¤ë¤¤¤Ï¡¢¤½¤¦¤¤¤Ã¤¿¼ïÎà¤Î¥Ð¥ì¥Ã¥È¤òÁý¤ä¤·¤Æ¤¤¤Ã¤Æ¤â¤¤¤¤¤È»×¤¤¤Þ¤¹¡£
¡¡

£¹¡¥¡ã±þÍÑ¡ä¡¡½èÍý¤Î¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¦


¡¡Bullet ¥¹¥¯¥ê¥×¥ÈÆâ¤ÎŨ¤òÄɽ¾¤¹¤ëÃƤνèÍý¤Ë¤ª¤¤¤Æ¡¢ºÇ¤â¶á¤¤Å¨¤Î°ÌÃÖ¾ðÊó¤òÈæ³Ó¤·¤Æ·èÄꤹ¤ë½èÍý¤¬¤¢¤ê¤Þ¤¹¡£

¡ã¸½ºß¤Î½èÍý¡ä
¡¡// ¸½ºß¤Î¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¤È nearPos ¤ÎÈæ³Ó¤ò¤·¤Æ¡¢²èÌ̤β¼(¥×¥ì¥¤¥ä¡¼)¤Ë¶á¤¤¤â¤Î¤ò 
  if (nearPos.x > pos.x && nearPos.y > pos.y) {

  ¡¡¡¡// nearPos ¤È¤·¤Æ¹¹¿·¤¹¤ë
      nearPos = pos;
  }

¡¡if ʸ¤Ë¤Æ¡¢£²¤Ä¤ÎŨ¤Î°ÌÃÖ(nearPos ¤È pos)¤ò¤½¤ì¤¾¤ì x ¤È y ¤È¤Ç³Îǧ¤·¤ÆȽÄê¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢
¤³¤ÎÈæ³Ó¤ÎÊýË¡¤Ç¤¹¤¬ x ¤ÎÃͤΤߤòɬ¤ººÇ½é¤ËÈæ³Ó¤¹¤ë¤¿¤á¡¢ËÜÍè¤Ç¤¢¤ì¤Ð¶á¤¯¤Ë¤¤¤ë¤Ï¤º¤ÎŨ¤È¤ÎȽÄ꤬Àµ¤·¤¯¹Ô¤¨¤º¡¢½èÍý¤Ë¥º¥ì¤¬À¸¤¸¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¡¢if ʸÆâ¤Ç2²ó¤ÎÈæ³ÓȽÄê¤ò¹Ô¤¦ÊýË¡¤«¤é¡¢1²ó¤ÎÈæ³ÓȽÄê¤ò¹Ô¤¦ÊýË¡¤Ë¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£

¡¡¤½¤ÎºÝ¡¢£²¤Ä¤ÎºÂɸ(x, y)¤ò£±¤Ä¤ÎÃͤȤ·¤Æ·×»»¤¹¤ëÊýË¡¤ò¹Í¤¨¤Þ¤¹¡£

¡ã½¤Àµ¸å¤Î½èÍý¡ä
¡¡// ¸½ºß¤Î¥¨¥Í¥ß¡¼¤Î°ÌÃÖ¤ÈÈæ³Ó¤·¤Æ¡¢²èÌ̤β¼¤Ë¶á¤¤¤â¤Î¤ò nearPos ¤È¤·¤Æ¹¹¿·¤¹¤ë
¡¡if (Vector3.Scale(nearPos, new(1, 1, 0)).normalized.sqrMagnitude > Vector3.Scale(pos, new(1, 1, 0)).normalized.sqrMagnitude) {
    ¡¡nearPos = pos;
¡¡}
}

¡¡Vector2 ·¿¤ä Vector3 ·¿¤Ë¤Ï Scale ¥á¥½¥Ã¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤Þ¤º¤Ï¤³¤Á¤é¤òÍøÍѤ·¤Æ¡¢z ¤ÎÃͤò 0 ¤ËÊäÀµ¤·¡¢x ¤È y ¤À¤±¤ÎÃͤˤ·¤Þ¤¹¡£
¤½¤Î¸å¡¢normalized ÊÑ¿ô¤òÍøÍѤ·¤Æ¡¢Àµµ¬²½½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
¤³¤Î½èÍý¤Ï¡¢PlayerController ¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤âÍøÍѤ·¤Æ¤¤¤ëÊýË¡¤Ç¤¹¤Î¤Ç¡¢Éü½¬¤ò·ó¤Í¤Æ¸«Ä¾¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡ºÇ¸å¤ËƱ¤¸¤¯ Vector3 ·¿¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë sqrMagnitude ÊÑ¿ô¤òÍøÍѤ·¤Æ¥Ù¥¯¥È¥ë¤Î 2 ¾è¤ÎŤµ¤ÎÃͤò»»½Ð¤·¤Þ¤¹¡£
¤³¤Î·×»»·ë²Ì¤ÎÃÍ¤Ï float ·¿¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤ì¤òÈæ³Ó¤·¤¿¤¤Å¨Æ±»Î¤Ç»»½Ð¤¹¤ë¤³¤È¤Ç¡¢
if ʸ¤ÎÈæ³ÓȽÄê¤ò2²ó¹Ô¤¦Êý¼°¤«¤é¡¢float ·¿ > float ·¿¤ò»È¤Ã¤¿1²ó¤À¤±¤ÎÈæ³ÓȽÄêʸ¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤ÊÈæ³Ó½èÍý¤Ë½¤Àµ¤¹¤ë¤³¤È¤Ç¡¢³Î¼ÂÀ­¤Î¹â¤¤Èæ³Ó¤ò¹Ô¤¦¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3.sqrMagnitude
https://docs.unity3d.com/ja/current/ScriptReferenc...

¡¡
¡¡¤Ê¤ª¡¢Vector2/3 ·¿¤Ë¤Ï sqrMagnitude ÊÑ¿ô¤Î¾¡¢magnitude ÊÑ¿ô¤âÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤Á¤é¤Ï¥Ù¥¯¥È¥ë¤ÎŤµ(¥Ù¥¯¥È¥ë¤Î (x *x+y* y+z* z) ¤ÎÊ¿Êýº¬(¥ë¡¼¥È)¤ÎŤµ)¤ò·×»»¤·¤ÆÊÖ¤·¤Þ¤¹¡£

¡¡Ê¿Êýº¬¤Î·×»»¤Ï·×»»½èÍý¤¬Â¿¤¯¤Ê¤ê¡¢·×»»¤Þ¤Ç¤Î»þ´Ö¤¬¤«¤«¤ê¤Þ¤¹¤Î¤Ç¡¢º£²ó¤Î¤è¤¦¤Ëñ½ã¤Ëµ÷Î¥¤Î±ó¶á¤ò·×»»¤·¤¿¤¤¾ì¹ç¤Ë¤Ï
Ê¿Êýº¬¤ÎÃͤǤϤʤ¯ sqrMagnitude ÊÑ¿ô(¥Ù¥¯¥È¥ë¤Î 2 ¾è¤ÎŤµ)¤ÎÃͤòÍøÍѤ·¤¿Èæ³Ó½èÍý¤ò¸¡Æ¤¤·¤Þ¤·¤ç¤¦¡£

»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3.magnitude
https://docs.unity3d.com/ja/current/ScriptReferenc...


£±£°¡¥¡ã¥Á¥ã¥ì¥ó¥¸¡ä¡¡Å¨¤ÎÃƤòÄÉÈø¤·¤Ê¤¤¤è¤¦¤Ë½¤Àµ¤ò¹Ô¤¦


¡¡¤³¤ÎÉôʬ¤Ï¼«Ê¬¤Ç¹Í¤¨¤Æ¥Á¥ã¥ì¥ó¥¸¤·¤Þ¤¹¡£

¡¡¸½ºß¡¢ËɱҵòÅÀ¤ÎÅö¤¿¤êȽÄê¤Î½èÍý¤Î´Ø·¸¾å¡¢Å¨¤È¡ÖŨ¤ÎÃơפÎξÊý¤Ë Enemy ¤Î¥¿¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢ÄÉÈø¤¹¤ëÃƤνèÍý¤ò³Îǧ¤·¤Æ¤¤¤¿¤À¤¯¤È¤ï¤«¤ë¤è¤¦¤Ë¡¢ÄÉÈøÂоݤȤ·¤Æ¡ÖŨ¤ÎÃơפâŨ¤Èǧ¼±¤·¤ÆÄÉÈø¤¹¤ë¾õÂ֤ˤʤäƤ¤¤Þ¤¹¡£

¡¡¤³¤Î½èÍý¤ò½¤Àµ¤·¡¢¥×¥ì¥¤¥ä¡¼¤Îȯ¼Í¤¹¤ëÄÉÈøÃƤˤĤ¤¤Æ¤ÏŨ¤Î¤ß¤òÄÉÈø¤·¡¢¡ÖŨ¤ÎÃơפÏÄÉÈø¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë½èÍý¤ò¹Í¤¨¤Æ¡¢¼ÂÁõ¤Ë¥Á¥ã¥ì¥ó¥¸¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡
¡¡¤É¤Î¤è¤¦¤Ë¤·¤Æ¡ÖÄÉÈø¤¹¤ëÂоݡפò¸«¤Ä¤±¤ÆÀßÄꤷ¤Æ¤¤¤ë¤«¡¢¤ò³Îǧ¤·¡¢¤½¤ì¤ò½¤Àµ¤¹¤ëÊýË¡¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¡Î㤨¤Ð¡¢Å¨¤ÎÃÆ¤Ë¤Ï Enemy ¤Ç¤Ï¤Ê¤¤¥¿¥°(EnemyBullet) ¤Î¤è¤¦ÀßÄê¤ËÊѤ¨¤Æ¡¢ËɱҵòÅÀ¤È¤ÎÅö¤¿¤êȽÄê¤Î´ð½à¤òÁý¤ä¤¹¡¢¤Ê¤É¤Ç¤¹¡£



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

¡¡¼¡¤Ï¡¡È¯Å¸£²£¹¡¡¡Ý¥²¡¼¥à¥¯¥ê¥¢±é½Ð¤ÎÄɲí¡¡Ý¡¡¤Ç¤¹¡£