ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ07·î18Æü(²Ð) 13:16:21ÍúÎò
¡¡¤³¤Î¼ê½ç¤Ç¤Ï¤¤¤Þ¤Þ¤Ç¤Îµ¡Ç½¤òÅý¹ç¤·¡¢¥Ü¥à¤ÎÀ¸À®¤Èºï½ü¤ò¹Ô¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡ã¥Ü¥à¤ÎÀ¸À®¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡ã¥Ü¥àȯư¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡ã¿·¤·¤¯³Ø½¬¤¹¤ëÆâÍÆ¡ä
¡¡¡¦List<T>.AddRange(IEnumerable<T>) ¥á¥½¥Ã¥É
¡¡¥Ü¥àÍѤÎÊÑ¿ô¤ò¿·¤·¤¯£³¤ÄÄɲä·¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢È¯Å¸£±£´¤Ë¤Æ´³»Ù¤òºï½ü¤¹¤ë½èÍý¤ò¥á¥½¥Ã¥É²½¤·¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢
¤½¤Á¤é¤ò³èÍѤ¹¤ë¤¿¤á¤Î¥á¥½¥Ã¥É¤ò¿·¤·¤¯£±¤ÄºîÀ®¤·¤Þ¤¹¡£
¡¡¥Ü¥à¤Îµ¡Ç½¤Ï¡¢¸ú²ÌÈÏ°ÏÆâ¤Ë¤¢¤ë´³»Ù¤ò¤¹¤Ù¤Æºï½ü¤¹¤ë¡¢¤È¤¤¤¦µ¡Ç½¤Ç¤¹¤Î¤Ç¡¢
Bomb ¥¹¥¯¥ê¥×¥È¤ÎÊý¤Ç¤Ï¸ú²ÌÈϰϤˤ¢¤ë¤¹¤Ù¤Æ¤Î´³»Ù¤Î¾ðÊó¤ò¼ý½¸¤¹¤ë½èÍý¤òµ½Ò¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢ºï½ü¤Î½èÍý¤Þ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢ºï½ü¤ÎÉôʬ¤Ë¤Ä¤¤¤Æ¤Ï GameManager ¤Ë°ÍÍê¤ò¤¹¤ë¡¢¤È¤¤¤¦Î®¤ì¤Ç¤¹¡£
GameManager.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡List ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¡¡Add ¥á¥½¥Ã¥É¤Ç¤ÏÍ×ÁǤò£±¤Ä¤º¤Ä List ¤ËÄɲ乤뤳¤È¤¬¤Ç¤¤Þ¤¹¤¬¡¢AddRange ¥á¥½¥Ã¥É¤Ï°ú¿ô¤Ë List ¤òÍ¿¤¨¤ë¤³¤È¤Ç
Í¿¤¨¤¿ List ¤ÎʤӤΤޤޡ¢°ì³ç¤ÇÄɲäò¹Ô¤Ã¤Æ¤¯¤ì¤Þ¤¹¡£List Æâ¤ÎÄɲ䵤ì¤ë°ÌÃ֤ϡ¢¸½ºß¤ÎÍ×ÁǤκǸå(ËöÈø)¤ÎÉôʬ¤«¤é¤Ç¤¹¡£
¡¡List ¤ÎÅý¹ç¤È¤â¸À¤¨¤Þ¤¹¡£
¡¡// Ê£¿ô¤Îºï½ü¸õÊä¤Î´³»Ù¤òºï½ü¥ê¥¹¥È¤Ë¤Þ¤È¤á¤ÆÄɲà ¡¡eraseEtoList.AddRange(eraseEtos);¡¡
»²¹Í¥µ¥¤¥È
MicroSoft
List.AddRange ¥á¥½¥Ã¥É
¥²¡¼¥Þ¡¼¤È¤¤É¤¥¨¥ó¥¸¥Ë¥¢ ÍÍ
¡ÚC#¡Û¥ê¥¹¥È¤Ë¥ê¥¹¥È¤òÄɲ乤ëAddRange¥á¥½¥Ã¥É¤ò²òÀ⤷¤Þ¤¹
¡¡¿·¤·¤¯ÊÑ¿ô¤ò£³¤ÄÄɲ䷤Ƥ¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡ºÇ²¼ÃʤËÄɲ䵤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Bomb ¥×¥ì¥Ï¥Ö¤Î¥¢¥µ¥¤¥ó¤È¡¢¥Ü¥à¤ÎÀ¸À®¤ËɬÍפʴ³»Ù¤Î¥Á¥§¡¼¥ó¿ô¡¢¥Ü¥à¤ÎÈϰϤˤĤ¤¤ÆÀßÄꤷ¤Þ¤¹¡£
ÀßÄê¾ì½ê

¡¡¥Ä¥à¥Ä¥à¤Î¤è¤¦¤Ë£·¤Ä°Ê¾å¤Ä¤Ê¤²¤Æ¥Ü¥à¤òÀ¸À®¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢BombGenerateCount ÊÑ¿ô¤ò 6 ¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ì¤ÏºÇ½é¤Î´³»Ù¤òÈ´¤«¤·¤Æ¡¢¥Á¥§¡¼¥ó¤·¤Æ¤¤¤ë¿ô¤Ç¤¹¡£¤Ä¤Þ¤ê¡¢¥²¡¼¥à¾å£·¤Ä·Ò¤¬¤Ã¤Æ¤¤¤ë¡¢¤È¤¤¤¦¤³¤È¤ÏºÇ½é¤Î´³»Ù¤òÈ´¤«¤·¤Æ¡¢£¶¤Ä¤¬¥Á¥§¡¼¥ó¤·¤Æ¤¤¤ë¡¢¤È¤¤¤¦²ò¼á¤Ç¤¹¡£
¡¡¤¹¤Ù¤Æ¤Î¼ê½ç¤¬´°À®¤·¤Þ¤·¤¿¤Î¤Ç¡¢¼ÂºÝ¤Ë¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤·¤Þ¤¹¡£
¡¡¥Ü¥à¤òÀ¸À®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢»ØÄꤷ¤¿¿ô¤Î´³»Ù¤ò¤Ä¤Ê¤²¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤Î»ØÄê¿ô¤ò¸ÇÄê¤ÇÀßÄꤷ¤Þ¤¦¤È¡¢¥Ç¥Ð¥Ã¥°¤¬¤ä¤ê¤Ë¤¯¤¯¡¢Ä´À°¤¹¤ëºÝ¤Ë¤â¥½¡¼¥¹¥³¡¼¥É¤òľÀܽ¤Àµ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¡¡¤½¤¦¤¤¤Ã¤¿»öÂÖ¤òÈò¤±¤ë¤¿¤á¡¢º£²ó¤ÎÀß·×¤Ç¤Ï GameManager ¤Ë BombGenerateCount ÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¡¡¤è¤Ã¤Æ¡¢¥Ç¥Ð¥Ã¥°¤¹¤ëºÝ¤Ë¤Ï BombGenerateCount ÊÑ¿ô¤ÎÃͤò¾®¤µ¤¯¤¹¤ë¤³¤È¤Ç¡¢´³»Ù¤ò¤Ä¤Ê¤²¤ë¿ô¤¬¾¯¤Ê¤¯¤Æ¤â¥Ü¥à¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
¤·¤Ã¤«¤ê¤È¥½¡¼¥¹¥³¡¼¥É¤òÆɤ߲ò¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡ã¥Ü¥à¤ÎÀ¸À®¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡ã¥Ü¥àȯư¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡
¡¡°ÊÁ°¤Î¼ê½ç¤Ç¤â¤ªÅÁ¤¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢¥²¡¼¥à¤Î¥Ç¥Ð¥Ã¥°¤Ï·«¤êÊÖ¤·¹Ô¤¦Á°Äó¤Ç¤¹¡£
¸úΨ¤Î¤è¤¤ºî¶È¤ò¤ª¤³¤Ê¤¦¤¿¤á¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«¤ò¹Í¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡¥Ü¥à¤ÎÈÏ°Ï¤Ï GameManager ¤Î BombRadius ÊÑ¿ô¤ÇÀßÄê¤Ç¤¤Þ¤¹¡£
Î㤨¤ÐÃͤòÊѹ¹¤¹¤ì¤Ð¡¢¤¹¤Ù¤Æ¤Î´³»Ù¤òÇ˲õ¤¹¤ë¤È¤¤¤¦¥Ü¥à¤âºî¤ì¤Þ¤¹¤·¡¢
Ê£¿ô¤Î¼ïÎà¤Î¥Ü¥à¤òºî¤ê¡¢¤½¤ì¤¾¤ì¤Î¸ú²ÌÈϰϤòÊѤ¨¤ë¤È¤¤¤¦¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¡ã¤¹¤Ù¤Æ¤Î´³»Ù¤òºï½ü¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡¥½¡¼¥¹¥³¡¼¥É¤ÎÆâÍƤòÆɤ߲ò¤¯¤³¤È¤Ç±þÍѤ·¤¿¥×¥í¥°¥é¥à¤òºîÀ®¤Ç¤¤Þ¤¹¡£
¥Á¥ã¥ì¥ó¥¸¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡Àµ¾ï¤Ë¥Ü¥à¤ÎÆ°ºî¤¹¤ë¤³¤È¤ò³Îǧ¤Ç¤¤Þ¤·¤¿¤é¡¢Bomb ¥¹¥¯¥ê¥×¥ÈÆâ¤Î OnClickBomb Æâ¤Î½èÍý¤ò LINQ ¤òÍøÍѤ·¤ÆÃÖ¤´¹¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡¡LINQ ¤Î³Æµ¡Ç½¤ò³èÍѤ¹¤ë¤È¡¢Ã»½Ì¤·¤¿Ì¿Îáʸ¤Ç¤¹¤Ã¤¤ê¤È½ñ¤±¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢´û¸¤Î½èÍý¤òÃÖ¤´¹¤¨¤Æ¤¤¤ë¤À¤±¤Ç¤¹¤Î¤Ç¡¢¥²¡¼¥à¤Î¸«¤¿Ìܤ䡢½èÍý¤Î·ë²Ì¤ÏƱ¤¸¤Ç¤¹¡£
¡ãÃÖ¤´¹¤¨¤ë½èÍý¡ä
List<Eto> eraseEtos = new List<Eto>(); Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, bombRadius); foreach (Collider2D collider in colliders) { if (collider.TryGetComponent(out Eto eto)) { eraseEtos.Add(eto); } }
¡¡¡¡¢
¡ãLINQ ¤òÍøÍѤ·¤Æ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¡ä
List<Eto> eraseEtos = Physics2D.OverlapCircleAll(transform.position, bombRadius) .Select(collider => collider.GetComponent<Eto>()) .Where(eto => eto != null) .ToList();
¡¡LINQ ¤Î½èÍý¤Ï¥á¥½¥Ã¥É¥Á¥§¡¼¥ó¤òÍøÍѤ·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¾åµ¤Î¤è¤¦¤Ë¡¢¥Ô¥ê¥ª¥É¤Î°ÌÃ֤Dzþ¹Ô¤¹¤ë¤³¤È¤Ç¡¢³Æ½èÍý¤òʬ²ò¤·¤Æɳ²ò¤¤¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡³Æ½èÍý¤ÎÀâÌÀ¤ò¤·¤Þ¤¹¡£
¡¡Physics2D.OverlapCircleAll¤Ï¡¢»ØÄꤷ¤¿°ÌÃÖ(transform.position)¤òÃæ¿´¤È¤·¤Æ¡¢»ØÄꤷ¤¿È¾·Â(bombRadius)Æâ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥é¥¤¥À¡¼¤ò¼èÆÀ¤·¤Þ¤¹¡£
OverlapCircleAll¥á¥½¥Ã¥É¤Ï¡¢»ØÄꤷ¤¿°ÌÃ֤˽ŤʤäƤ¤¤ë¤¹¤Ù¤Æ¤Î¥³¥é¥¤¥À¡¼¤òÇÛÎó¤È¤·¤ÆÊÖ¤·¤Þ¤¹¡£
¡¡Select¥á¥½¥Ã¥É¤Ï¡¢ÇÛÎóÆâ¤Î³ÆÍ×ÁǤËÂФ·¤Æ»ØÄꤷ¤¿½èÍý¤ò¼Â¹Ô¤·¡¢·ë²Ì¤ÎÍ×ÁǤò¿·¤·¤¤¥³¥ì¥¯¥·¥ç¥ó¤Ë¥Þ¥Ã¥Ô¥ó¥°(¼Í±Æ)¤·¤Þ¤¹¡£
¤³¤Î¾ì¹ç¡¢³Æcollider¤«¤éGetComponent<Eto>()¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢Eto¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ¤·¤Þ¤¹¡£
GetComponent<Eto>()¤Ï¡¢»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È(Eto)¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò³Îǧ¤·¡¢¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÊÖ¤·¤Þ¤¹¡£
¡¡Where¥á¥½¥Ã¥É¤Ï¡¢»ØÄꤷ¤¿¾ò·ï(eto != null)¤Ë¹çÃפ¹¤ëÍ×ÁǤΤߤò¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Þ¤¹¡£
¤³¤Î¾ì¹ç¡¢eto¤¬null¤Ç¤Ê¤¤Í×ÁǤΤߤò»Ä¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢Eto¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ëÍ×ÁǤÀ¤±¤¬»Ä¤ê¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢Select ¥á¥½¥Ã¥É¤Ë¤è¤Ã¤Æ GetComponent ¤·¤¿ºÝ¤Ë¡¢Ëü¤¬°ì null ¤Î¾ðÊ󤬤¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¤½¤ì¤ò½ü³°¤·¡¢Í×ÁǤΰÂÁ´À¤ò³ÎÊݤ·¤Æ¤¤¤Þ¤¹¡£
¡¡ToList¥á¥½¥Ã¥É¤Ï¡¢¥³¥ì¥¯¥·¥ç¥ó¤òList¤ËÊÑ´¹¤·¤Þ¤¹¡£
¤³¤Î¾ì¹ç¡¢Select¤ª¤è¤ÓWhere¤ÇÆÀ¤é¤ì¤¿Í×ÁǤòList<Eto>¤ËÊÑ´¹¤·¤Þ¤¹¡£
¡¡°Ê¾å¤Î¤è¤¦¤Êή¤ì¤Ë¤è¤ê¡¢ºÇ½ªÅª¤Ë¡¢»ØÄꤷ¤¿°ÌÃÖ¤ÈȾ·ÂÆâ¤Ë¤¢¤ë¥³¥é¥¤¥À¡¼¤ò»ý¤Ä¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃ椫¤é¡¢Eto¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤À¤±¤¬eraseEtos¥ê¥¹¥È¤ËÄɲ䵤ì¤Þ¤¹¡£
¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤¹¤ëÁ°¤Î½èÍý¤ÈƱ¤¸ÆâÍƤˤʤê¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯