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

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

¼ê½ç£±£·¡¡¡¼Åªµå¤Î¼«Æ°À¸À®½èÍý¤ò¼ÂÁõ¡¼
£³£±¡¥CanvasÆâ¤ËÀ¸À®°ÌÃÖÀßÄêÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀßÃÖ¤¹¤ë
£³£²¡¥BattleManager¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë¡ÊŪµå¤ò¥é¥ó¥À¥à¤Ê°ÌÃ֤˼«Æ°À¸À®¤¹¤ë¡Ë



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

¡¦whileʸ
¡¦Physics2D.Raycast¥á¥½¥Ã¥É



£³£±¡¥CanvasÆâ¤ËÀ¸À®°ÌÃÖÀßÄêÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀßÃÖ¤¹¤ë

Àß·×


¡¡Àè¤Û¤É¤Î¼ê½ç¤ÇŪµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥×¥ì¥Õ¥¡¥Ö¤Ë¤·¤Þ¤·¤¿¡£
¤³¤Î¾ðÊó¤òÍøÍѤ·¤Æ¡¢¥²¡¼¥à¤Î¼Â¹Ô¤ÈƱ»þ¤ËŪµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òBattleManager¥¯¥é¥¹¤«¤é¼«Æ°Åª¤ËÀ¸À®¤¹¤ë¤è¤¦¤Ë½èÍý¤òÄɲä·¤Þ¤¹¡£

¡¡À¸À®¿ô¤Ï¥é¥ó¥À¥à¤ÊÃͤȤ·¡¢¥²¡¼¥à¼Â¹Ô¤Î¤¿¤Ó¤ËÈÏ°ÏÆâ¤ÇÊѤï¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤½¤ÎºÝ¡¢Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤µ¤ì¤ë°ÌÃÖ¤â¥é¥ó¥À¥à¤ËÊѤï¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡´°Á´¤Ë¥é¥ó¥À¥à¤Ç¤¹¤È¡¢¥²¡¼¥à²èÌ̳°¤ä¾¤ÎŪµå¤ä¾ã³²Êª¡¢¥­¥ã¥é¤ÈƱ¤¸°ÌÃÖ¤ËÀ¸À®¤µ¤ì¤Æ¤·¤Þ¤¦¤¿¤á¡¢¾ò·ï¤ò¤Ä¤±¤ÆÀ¸À®¤ò¹Ô¤¤¤Þ¤¹¡£

­¡À¸À®¤¹¤ë°ÌÃ֤ϡ¢¥²¡¼¥à²èÌÌÆâ¤Î¤ß¤È¤¹¤ë(UIÉôʬ¤ä²èÌ̳°¤Ë¤ÏÀ¸À®¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë)

­¢À¸À®¤¹¤ë°ÌÃ֤˾¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Î°ÌÃ֤ǤÏÀ¸À®¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë

­£À¸À®¤µ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï£±¤Ä¤Î¥Õ¥©¥ë¥ÀÌò¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¤È¤·¤Æ¤Þ¤È¤á¤Æ¤ª¤¯


¡¡¤³¤Î£³ÅÀ¤Ë¤Ä¤¤¤Æ¾ò·ï²½¤·¡¢¤½¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¾ì¹ç¤Î¤ß¡¢Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡À¸À®ÈϰϤλØÄê¤ò¹Ô¤¦¤¿¤á¡¢Ä¾ÀܺÂɸ¤ò»ØÄꤹ¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£º£²ó¤Ï¡¢ºÂɸ¤È¤·¤ÆÍøÍѤ¹¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃÖ¤·¤Æ¡¢¤½¤Î°ÌÃÖ¾ðÊó¤òÍøÍѤ¹¤ëÊýË¡¤ÇÀ߷פ·¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¤Ë¤Ï»öÁ°¤Î½àÈ÷¤¬É¬Íפˤʤ뤿¤á¡¢¤³¤Î¼ê½ç¤Ç¤Ï¤Þ¤º¡¢­¡¡Á­£¤ò¼ÂÁõ¤¹¤ë¤Î¤ËɬÍפʥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃÖ¤·¤Þ¤¹¡£


Ūµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®ÈϰϤò»ØÄê¡ÊÀ©¸Â¡Ë¤¹¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë


¡¡£²¤Ä¤Î¶õ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢­¡¤È­¢¤Î¾ò·ï¤È¤·¤Æ¤½¤Î°ÌÃÖ¾ðÊó¤òÍøÍѤ·¤Þ¤¹¡£

¡¡¥²¡¼¥à²èÌ̤κ¸²¼¤Ë£±¤Ä¡¢±¦¾å¤Ë£±¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤ÆÀßÃÖ¤·¡¢¤½¤ÎÈÏ°ÏÆâ¤òÀ¸À®ÈϰϤÈÀ©¸Â¤¹¤ë¤³¤È¤Ç¡¢
¥²¡¼¥à²èÌ̳°¤äUI¤Ë½Å¤Ê¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¤³¤È¤òËɤ®¤Þ¤¹¡£


LeftBottomTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë

¡¡¥Ò¥¨¥é¥ë¥­¡¼¤ÎCanvas¤Î¾å¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤òɽ¼¨¤·¡¢Create Empty ¤òÁªÂò¤·¤Þ¤¹¡£
ºîÀ®¤µ¤ì¤¿¶õ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤ò LeftBottomTran ¤ËÊѹ¹¤·¤Þ¤¹¡£


¥Ò¥¨¥é¥ë¥­¡¼²èÁü



¡¡¤³¤Î LeftBottomTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤ò¥²¡¼¥à²èÌ̤κ¸²¼¤ËÇÛÃÖ¤·¤Þ¤¹¡£
Scene²èÁü¤ä¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¤ò»²¹Í¤Ë¡¢¥²¡¼¥à²èÌÌÆ⤫¤Ä¡¢Bottom_UI ¤è¤ê¤â¾å¤Ë¤Ê¤ë¤è¤¦¤ËÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£


LeftBottomTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡Scene¥Ó¥å¡¼²èÁü



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



RightTopTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë

¡¡LeftBottomTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÈƱ¤¸¼ê½ç¤ÇºîÀ®¤·¤Þ¤¹¡£¤³¤Á¤é¤Î°ÌÃ֤ϱ¦¾å¤Ë¤Ê¤ë¤è¤¦¤ËÇÛÃÖ¤·¤Þ¤¹¡£

¡¡¥Ò¥¨¥é¥ë¥­¡¼¤ÎCanvas¤Î¾å¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤òɽ¼¨¤·¡¢Create Empty ¤òÁªÂò¤·¤Þ¤¹¡£
ºîÀ®¤µ¤ì¤¿¶õ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤ò RightTopTran ¤ËÊѹ¹¤·¤Þ¤¹¡£


¥Ò¥¨¥é¥ë¥­¡¼²èÁü



¡¡¤³¤Î RightTopTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤ò¥²¡¼¥à²èÌ̤α¦¾å¤ËÇÛÃÖ¤·¤Þ¤¹¡£
Scene²èÁü¤ä¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¤ò»²¹Í¤Ë¡¢¥²¡¼¥à²èÌÌÆ⤫¤Ä¡¢Top_UI ¤è¤ê¤â²¼¤Ë¤Ê¤ë¤è¤¦¤ËÇÛÃÖ¤·¤Æ¤¯¤À¤µ¤¤¡£


RightTopTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡Scene¥Ó¥å¡¼²èÁü



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



¡¡°Ê¾å¤Ç¡¢Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ëºÝ¤ÎÈϰϤÎÀ©¸Â°ÌÃÖ¤ÎÀßÄ꤬½ÐÍè¤Þ¤·¤¿¡£¸åÄø¡¢BattleManager¥¯¥é¥¹¤ò½¤Àµ¤·¡¢¥¢¥µ¥¤¥ó¤·¤ÆÍøÍѤ·¤Þ¤¹¡£


Ūµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò³ÊǼ¤¹¤ë¥Õ¥©¥ë¥ÀÌò¤Î EnemyPlace ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë


¡¡Â³¤¤¤Æ¡¢À¸À®¤µ¤ì¤¿Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¥Ò¥¨¥é¥ë¥­¡¼Æâ¤ËÍ𻨤Ëʤ֤³¤È¤¬¤Ê¤¤¤è¤¦¡¢­£¤Î¾ò·ï¤òËþ¤¿¤¹¤¿¤á¤Ë
À¸À®»þ¤Ë¥Õ¥©¥ë¥ÀÌò¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆÀ¸À®¤·¤Þ¤¹¡£¤Þ¤È¤á¤Æ¤ª¤¯¤³¤È¤Ç´ÉÍý¤ä¥Ç¥Ð¥Ã¥°¤¬´ÊÊؤˤʤê¤Þ¤¹¡£

¡¡¥Ò¥¨¥é¥ë¥­¡¼¤ÎCanvas¤Î¾å¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤òɽ¼¨¤·¡¢Create Empty ¤òÁªÂò¤·¤Þ¤¹¡£
ºîÀ®¤µ¤ì¤¿¶õ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤ò EnemyPlace ¤ËÊѹ¹¤·¤Þ¤¹¡£
¡¡

¥Ò¥¨¥é¥ë¥­¡¼²èÁü



¡¡EnemyPlace ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤Ï RectTransform¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎPosition¤¬¤¹¤Ù¤Æ (0, 0, 0)¤Î°ÌÃ֤ˤʤë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
½é´üÃͤÇÀßÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢0 °Ê³°¤Ë¤Ê¤Ã¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£


EnemyTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡Scene¥Ó¥å¡¼²èÁü



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



¡¡°Ê¾å¤Ë°ÌÃÖ¾ðÊó¤ÎÀßÄê¤Ï´°Î»¤Ç¤¹¡£¤³¤Á¤é¤â BattleManager¥¯¥é¥¹¤ò½¤Àµ¤·¡¢¥¢¥µ¥¤¥ó¤·¤ÆÍøÍѤ·¤Þ¤¹¡£


£³£²¡¥BattleManager¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë¡ÊŪµå¤ò¥é¥ó¥À¥à¤Ê°ÌÃ֤˼«Æ°À¸À®¤¹¤ë¡Ë

Àß·×


¡¡BattleManager¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¡¢Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥é¥ó¥À¥à¤Ê¿ô¡¢¥²¡¼¥àÆâ¤Î¥é¥ó¥À¥à¤Ê°ÌÃ֤˼«Æ°À¸À®¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡À¸À®°ÌÃÖ¤¬¥²¡¼¥à²èÌÌÆâ¤Ë¼ý¤Þ¤ë¤è¤¦¤ËÈÏ°ÏÀ©¸Â¤ò¹Ô¤¦¤È¤È¤â¤Ë¡¢Raycastµ¡Ç½¤òÍøÍѤ·¤Æ¡¢À¸À®°ÌÃ֤ˤ¹¤Ç¤Ë¾¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¤«¤ò³Îǧ¤·¡¢
²¿¤â¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¤Ê¤¤¾ì¹ç¤À¤±À¸À®¤ò¹Ô¤¦À©¸æ¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¾¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È½Å¤Ê¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¤³¤È¤òËɤ®¤Þ¤¹¡£

¡¡¤³¤Î¤È¤­¡¢À¸À®¤¹¤ëÌÜɸ²ó¿ô¤È¤³¤ÎȽÄꤹ¤ë²ó¿ô¤ò°ì½ï¤Ë¤·¤Æ¤·¤Þ¤¦¤È¡¢Î㤨¤Ð¡¢3²ó¤ÎÀ¸À®²ó¿ô¤ËÂФ·¤ÆÀ¸À®²Äǽ¤ÊȽÄ꤬1²ó¤·¤«¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¡¢
2²óʬ¤ÎÀ¸À®¤¬¹Ô¤ï¤ì¤º¤Ë¥²¡¼¥à¤¬³«»Ï¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤Ä¤Þ¤ê for ʸ¤Î¤è¤¦¤Ê¡¢»ØÄꤷ¤¿²ó¿ô¤·¤«·«¤êÊÖ¤·½èÍý¤¬¤Ç¤­¤Ê¤¤¤â¤Î¤Ç¤ÏÀ©¸æ¤¬¹Ô¤¨¤Þ¤»¤ó¡£

¡¡¤½¤³¤Çº£²ó¤Ï while ʸ¤òÍøÍѤ·¤Æ¡¢¼ÂºÝ¤ËÀ¸À®¤µ¤ì¤¿²ó¿ô¤ÈÀ¸À®¤¹¤ëÌÜɸ²ó¿ô¤È¤ò°ìÃפµ¤»¤ë¤³¤È¤Ç¡¢È½Äê¤Ï²¿²ó¤Ç¤â¹Ô¤¨¤ë¤è¤¦¤ËÀ©¸æ¤·¤Æ¤¤¤Þ¤¹¡£
À¸À®²ó¿ô¤ÇÀ©¸æ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¼ÂºÝ¤ËÀ¸À®¤·¤¿²ó¿ô¤Ë¤è¤Ã¤Æ·«¤êÊÖ¤·½èÍý¤òÀ©¸æ¤¹¤ë¤³¤È¤Ç¡¢ÌÜɸ¿ô¤òËþ¤¿¤¹¤Þ¤Ç·«¤êÊÖ¤·½èÍý¤ò¹Ô¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£


¡¡À¸À®¤µ¤ì¤¿Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÏList¤ËÅÐÏ¿¤·¡¢¸å¤ËÄɲ乤륹¥Æ¡¼¥¸¤Î¥¯¥ê¥¢½èÍý¤ËÈ÷¤¨¤Þ¤¹¡£
Ūµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ç˲õ¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢¤³¤ÎList¤«¤é¤â¾ðÊ󤬺ï½ü¤µ¤ì¤Æ¤¤¤¯¤è¤¦¤ËÀ©¸æ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£(EnemyBall¥¹¥¯¥ê¥×¥È¤ËÄɵ­ºÑ)


BattleManager¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë


¡¡¼«Æ°À¸À®¤Î½èÍý¤Î¤¿¤á¤Ë¡¢¿·¤·¤¤ÊÑ¿ô¤ò£¶¤ÄÄɲä·¤Þ¤¹¡£¤Þ¤¿¥á¥½¥Ã¥É¤ò£³¤ÄÄɲä·¤Þ¤¹¡£

¡¡Initialize¥á¥½¥Ã¥É¤ò½¤Àµ¤·¡¢¼êµå¤ÎÀ¸À®¤¬½ª¤ï¤Ã¤¿¤¢¤È¤Ë¡¢Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë½èÍý¤òÄɲä·¤Þ¤¹¡£
Ť¤¤Ç¤¹¤¬Á´Ê¸·ÇºÜ¤·¤Þ¤¹¡£¤æ¤Ã¤¯¤ê¤È½èÍý¤Îή¤ì¤ò¸«¤Ê¤¬¤éµ­½Ò¤·¤Æ¤¯¤À¤µ¤¤¡£


BattleManager.cs

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



whileʸ


¡¡È¿Éü½èÍý¤È¸Æ¤Ð¤ì¤ë½èÍý¤Ç¤¹¡£¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¸Â¤ê¡¢·«¤êÊÖ¤·½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡º£²ó¤Î¥±¡¼¥¹¤Ç¤Ï¾ò·ï¤¬¡Öcount ¤ÎÃͤ¬ appearEnemyCount¤ÎÃͤè¤ê¤âÄ㤤¡×¤Ç¤¹¤Î¤Ç¡¢¤³¤Î¾ò·ï¤òËþ¤¿¤¹´Ö¤Ï¤º¤Ã¤È·«¤êÊÖ¤·½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
À¸À®¤ËÀ®¸ù¤¹¤ë¤¿¤Ó¤Ë count ¤ÎÃÍ¤Ï 1 ¤º¤Ä²Ã»»¤µ¤ì¤Þ¤¹¡£¤³¤ÎÃͤ¬À¸À®ÌÜɸ¤Ç¤¢¤ë appearEnemyCount¤ÎÃÍ ¤Ë¤Ê¤ë¤Þ¤Ç¤Ï¡¢À¸À®¤ò³¤±¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤·¤Æ¤³¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¯¤Ê¤Ã¤¿¤È¤­ = count ¤ÎÃͤ¬ appearEnemyCount¤ÎÃͤè¤ê¤âƱ¤¸¤«Â礭¤¯¤Ê¤Ã¤¿¤È¤­¤Ë¤ÏÀ¸À®¤¬½ªÎ»¤·¤¿¡¢¤ÈȽÃǤµ¤ì¡¢¤³¤Î·«¤êÊÖ¤·½èÍý¤¬½ªÎ»¤·¡¢¼¡¤Î½èÍý¤Ø°Ü¤ê¤Þ¤¹¡£

    // À¸À®¤¹¤ëŨ¤Î¿ô¤ò¥é¥ó¥À¥à¤ÇÀßÄê
    int appearEnemyCount = Random.Range(2, 5);

    // À¸À®¤·¤¿¿ô¤ò¥«¥¦¥ó¥ÈÍÑ
    int count = 0;

    // À¸À®¤·¤¿¿ô¤¬À¸À®¿ô¤Ë¤Ê¤ë¤Þ¤Ç¥ë¡¼¥×¤¹¤ë¡£ÌÜɸ¿ô¤Ë¤Ê¤Ã¤¿¤éÀ¸À®½ªÎ»¤·¡¢¥ë¡¼¥×¤òÈ´¤±¤ë
    while (count < appearEnemyCount) {
   
       // ½èÍý

       // À¸À®¤ËÀ®¸ù¤·¤¿¾ì¹ç¤À¤±¡¢count¤ò²Ã»»¤¹¤ë
       count++;

       // ½èÍý
    }

¡¡º£²ó¤ÏÀ¸À®¤¹¤ëºÝ¤Ë¡Ö¾¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È½ÅÊ£¤·¤Ê¤¤¡×¤È¤¤¤¦¾ò·ï¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢²ó¿ô¤ò»ØÄꤷ¤¿È¿Éü½èÍý¤Ç¤ÏÀµ¾ï¤ÊÀ¸À®¤¬¹Ô¤¨¤Þ¤»¤ó¡£

¡¡while ʸ¤òÍøÍѤ·¤Æ¡ÖÀ¸À®¤ËÀ®¸ù¤·¤¿»þ¤À¤±²ó¿ô¤ò²Ã»»¤·¡¢¤½¤Î²ó¿ô¤¬»ØÄêÃͤˤʤ俤éÀ¸À®¤ò»ß¤á¤ë¡×¤È¤¤¤¦½èÍý¤Ë¤¹¤ë¤³¤È¤Ç¡¢
¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¾ì¹ç¤Ç¤¢¤Ã¤Æ¤â¡¢À¸À®²ó¿ô¤Ë㤹¤ë¤Þ¤Ç¤Ï²¿²ó¤Ç¤â·«¤êÊÖ¤·½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤ì¤Æ¤¤¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
̤³ÎǧÈô¹Ô C ÍÍ
È¿Éü½èÍý
https://ufcpp.net/study/csharp/st_loop.html


Physics2D.Raycast¥á¥½¥Ã¥É


¡¡¤¢¤ëÃÏÅÀ¤«¤éÆÃÄê¤ÎÊý¸þ¤Ø¸þ¤«¤Ã¤Æ Ray ¤È¤¤¤¦¸«¤¨¤Ê¤¤¸÷Àþ¤òÅê¼Í¤·¤Æ¡¢¤½¤Î´Ö¤ËÀÜ¿¨¤·¤¿¥³¥é¥¤¥À¡¼¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò
RaycastHit2D ·¿¤ÇÌᤷ¤Æ¤¯¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£


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


  // Transform¾ðÊó¤òÂåÆþ
  Transform enemyTran = canvasTran;

  // ­¡°ÌÃÖ¤ò²èÌÌÆâ¤Ë¼ý¤Þ¤ëÈϰϤǥé¥ó¥À¥à¤ËÀßÄê
  enemyTran.position = new Vector2(Random.Range(leftBottomTran.localPosition.x, rightTopTran.localPosition.x), Random.Range(leftBottomTran.localPosition.y, rightTopTran.localPosition.y));

  // ­¢ÀßÄꤷ¤¿°ÌÃÖ¤ËÂФ·¤ÆRay¤òȯ¼Í
  RaycastHit2D hit = Physics2D.Raycast(enemyTran.position, Vector3.forward);

  // ­£Ray¤ËÅö¤¿¤Ã¤¿¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¼¨¡£²¿¤â¤Ê¤¤¤È¤­¤Ï null
  Debug.Log(hit.collider);
            
  // ­¤¤â¤·¤â²¿¤âRay¤ËÅö¤¿¤é¤Ê¤¤¾ì¹ç(Ray¤Ë²¿¤«Åö¤¿¤Ã¤¿¾ì¹ç¤Ë¤Ï¤½¤Î°ÌÃ֤ˤÏÀ¸À®¤·¤Ê¤¤¤Î¤Ç¡¢¥ë¡¼¥×¤ÎºÇ½é¤«¤é¤ä¤êľ¤¹)
  if (hit.collider == null) {

     // ½èÍý

  }

¡¡º£²ó¤Î¥±¡¼¥¹¤Ç¤Ï¡¢­¡¥²¡¼¥à²èÌÌÆâ¤Î¥é¥ó¥À¥à¤Ê°ÌÃÖ¤òÀßÄꤷ¡¢­¢¤½¤Î°ÌÃ֤ظþ¤±¤Æ Ray ¤òȯ¼Í¤·¤Þ¤¹¡£²èÌ̤αüÊýË¡(ZÊý¸þ)¤ËÂФ·¤Æȯ¼Í¤·¤Æ¤¤¤ë¤¿¤á¡¢
¥²¡¼¥à²èÌÌÆâ¤Î­¡¤Î°ÌÃ֤˸ºß¤·¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥é¥¤¥À¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢­£¤½¤Î¥³¥é¥¤¥À¡¼¾ðÊó¤ò¼èÆÀ¤·¤Þ¤¹¡£

¡¡¥³¥é¥¤¥À¡¼¾ðÊ󤬼èÆÀ¤Ç¤­¤ë¡¡=¡¡²¿¤«¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Â¸ºß¤·¤Æ¤¤¤ë¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¡¢¤³¤Î¤È¤­¤Ï­¤¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¤¤¿¤á¡¢
Ūµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÏÀ¸À®¤µ¤ì¤º¡¢ºÇ½é¤«¤é¥ë¡¼¥×½èÍý¤ò¤ä¤êľ¤·¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢¤â¤¦°ìÅÙ¥é¥ó¥À¥à¤Ê°ÌÃÖ¤òÀßÄꤷ¤Æ¡¢¤½¤Î°ÌÃÖ¤Ë Ray ¤òȯ¼Í¤¹¤ë¡¢¤È¤¤¤¦Î®¤ì¤ò·«¤êÊÖ¤·¤Þ¤¹¡£

¡¡¥³¥é¥¤¥À¡¼¾ðÊ󤬼èÆÀ¤Ç¤­¤Ê¤¤¡¡¡á¡¡¥³¥é¥¤¥À¡¼¤ò»ý¤Ä¥²¡¼¥à¤¬²¿¤â¸ºß¤·¤Æ¤¤¤Ê¤¤¡¡¡á¡¡¼êµå¤â¡¢Â¾¤ÎŪµå¤â¡¢¾ã³²Êª¤â¸ºß¤·¤Æ¤¤¤Ê¤¤°ÌÃ֤Ȥ¤¤¦¤³¤È¤Ë¤Ê¤ê¡¢
¤³¤³¤Ç»Ï¤á¤ÆŪµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¡¢¥²¡¼¥àÆâ¤ËÇÛÃÖ¤¹¤ë½èÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¡£Æ±»þ¤ËList¤ØÅÐÏ¿¤µ¤ì¤Æ¡¢À¸À®¥«¥¦¥ó¥È¤â²Ã»»¤µ¤ì¤Þ¤¹¡£

¡¡À¸À®¥«¥¦¥ó¥È¤ÏÀ¸À®¤·¤¿ºÝ¤Ë¤·¤«²Ã»»¤µ¤ì¤Þ¤»¤ó¤Î¤Ç¡¢¤³¤Î¼ê½ç¤ò·«¤êÊÖ¤·¤Æ¡¢Â¾¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È½Å¤Ê¤é¤Ê¤¤°ÌÃ֤˻ØÄê¿ô¤ÎŪµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë¤Þ¤Ç½èÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¡£


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


¡¡BattleManager¥¯¥é¥¹¤ò½¤Àµ¤·¤Þ¤·¤¿¤Î¤Ç¡¢BattleManager¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¡¢¥¢¥µ¥¤¥ó¾ðÊó¤òÀßÄꤷ¤Þ¤¹¡£
¥¢¥µ¥¤¥óÍѤÎÊÑ¿ô̾¤È¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾Á°¤È¤òƱ¤¸¤Ë¤Ê¤ë¤è¤¦¤ËÀ߷פ·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Æ±¤¸Ì¾Á°¤Ç¥¢¥µ¥¤¥ó¤ò¹ç¤ï¤»¤ë¤è¤¦¤Ë½ÐÍè¤Þ¤¹¡£¤Þ¤¿´Ö°ã¤¨¤Æ¤â¤¹¤°¤Ëµ¤¤Å¤±¤Þ¤¹¡£
¡¡Á´Éô¤Ç6¤«½ê¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢½çÈ֤˥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£


¡¡enemyBallPrefab ÊÑ¿ô¤Ë¤ÏŪµå(Ũ)¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥ì¥Õ¥¡¥Ö¤ò¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£
Prefab¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ëEnemyBall¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£

¡¡enemyBallList ÊÑ¿ô¤Ë¤Ï²¿¤â¥¢¥µ¥¤¥ó¤·¤Þ¤»¤ó¡£Size ¤â 0 ¤Î¤Þ¤Þ¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£¤³¤³¤Ë¤Ï¥²¡¼¥à¤Î¼Â¹Ô»þ¤ËÀ¸À®¤µ¤ì¤¿Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£
¥²¡¼¥à¤Î¼Â¹Ô»þ¤Ë³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡canvasTran ÊÑ¿ô¤Ë¤Ï¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ëCanvas¤ÎTransform¤òÅÐÏ¿¤·¤Þ¤¹¡£¥Ò¥¨¥é¥ë¥­¡¼¤ÎCanvas¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£
¤³¤Î¾ðÊó¤ÏŪµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ëºÝ¤Ë°ÌÃÖ¡¦²óž¾ðÊó¤È¿Æ¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤È¤·¤ÆÍøÍѤ·¤Þ¤¹¡£


¥¢¥µ¥¤¥ó¼ê½çÆ°²è­¡
https://gyazo.com/e8f5ac46a80702ee2446cef611906eef


¡¡leftBottomTran ÊÑ¿ô¤Ë¤Ï¥²¡¼¥à²èÌ̤κ¸²¼°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¤Î Transform ¾ðÊó¤ò¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£Àè¤Û¤ÉºîÀ®¤·¤¿ LeftBottomTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò
¥Ò¥¨¥é¥ë¥­¡¼¤«¤é¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£¼«Æ°Åª¤Ë Transform ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥µ¥¤¥ó¾ðÊó¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Þ¤¹¡£

¡¡rightTopTran ÊÑ¿ô¤â¡¢LeftBottomTran ÊÑ¿ô¤ÈƱ¤¸Ìò³ä¤Ç¤¹¡£¥²¡¼¥à²èÌ̤α¦¾å°ÌÃÖ¤ò»ØÄꤹ¤ë¤¿¤á¤ÎTransform ¾ðÊó¤ò¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£
Àè¤Û¤ÉºîÀ®¤·¤¿ RightTopTran ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥Ò¥¨¥é¥ë¥­¡¼¤«¤é¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£¼«Æ°Åª¤Ë Transform ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥µ¥¤¥ó¾ðÊó¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Þ¤¹¡£

¡¡enemyPlace ÊÑ¿ô¤ÏÀ¸À®¤·¤¿Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬³ÊǼ¤µ¤ì¤ë¥Õ¥©¥ë¥À¤ÎÌò³ä¤Ç¤¹¡£¥Ò¥¨¥é¥ë¥­¡¼¤Î EnemyPlace ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£


¥¢¥µ¥¤¥ó¼ê½çÆ°²è­¢
https://gyazo.com/62b8c21800c013ef51b4ac6a0a4a9694


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



EnemyBall¥¯¥é¥¹¤Î¥³¥á¥ó¥È¥¢¥¦¥È¤òºï½ü¤¹¤ë


¡¡BattleManager¥¯¥é¥¹¤Ë¥á¥½¥Ã¥É¤¬Äɲ䵤ì¤Þ¤·¤¿¤Î¤Ç¡¢EnemyBall¥¯¥é¥¹¤ÎDestroyEmeny¥á¥½¥Ã¥É¤Î¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¤¤¿½èÍý¤ò¸µ¤ËÌᤷ¤Þ¤¹¡£

EnemyBall.cs
    public void DestroyEnemy(Sequence sequence) {
        capsuleCol.enabled = false;

        // Ç˲õ¤Þ¤Ç¤Î»þ´Ö
        float duration = 0.5f;

        // Æ⦤˾®¤µ¤¯¤¹¤ë ¥É¥í¥Ã¥×ÆâÍƤǾ䨤ë½èÍý¤òʬ´ô
        sequence.Join(GetComponent<RectTransform>().DOSizeDelta(new Vector2(0, 100), duration).SetEase(Ease.Linear));

        // Ũ¤Î´ÉÍý
        gameManager.RemoveEnemyList(this);¡¡¡¡¡¡// <= ¥³¥á¥ó¥È¥¢¥¦¥È¤ò²ò½ü

        // ¥¹¥±¡¼¥ë¤¬0¤Ë¤Ê¤ë¥¿¥¤¥ß¥ó¥°¤ÇÇË´þ
        Destroy(gameObject, duration);
    }


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


¡¡¥²¡¼¥à¤Î¼Â¹Ô¤·¤¿ºÝ¡¢½çÈ֤˽èÍý¤¬Î®¤ì¤Æ¤¤¤¯¤«¤ò³Îǧ¤·¤Þ¤¹¡£¤Þ¤º¤ÏBottom_UIÆâ¤Ë¼êµå¥¢¥¤¥³¥ó¤¬À¸À®¤µ¤ì¡¢¤½¤Î¸å¡¢¥²¡¼¥à²èÌÌÆâ¤Ë¼êµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
ºÇ¸å¤Ëº£²óÄɲä·¤¿Åªµå¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤¬¹Ô¤ï¤ì¤ëή¤ì¤Ç¤¹¡£¥é¥ó¥À¥à¤Ê¿ô¤È¥é¥ó¥À¥à¤Ê°ÌÃÖ¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢²¿²ó¤«·«¤êÊÖ¤·¤Æ¥Ç¥Ð¥Ã¥°¤·¤Æ¤¯¤À¤µ¤¤¡£
Ʊ¤¸°ÌÃÖ¤ËÀ¸À®¤µ¤ì¤Ê¤¤¤«¤â³Îǧ¤·¤Þ¤¹¡£


¼Â¹Ô¸¡¾ÚÆ°²è
https://gyazo.com/e07ec95f659a4605a5531af8cc7f9d53


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

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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