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

¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢¼ïÎà¤Ë¤è¤ë¥ì¥¢¥ê¥Æ¥£(´õ¾¯ÅÙ)¤´¤È¤ÎÄ󶡳ä¹ç¤òÅÐÏ¿¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È(¥Ç¡¼¥¿¥Ù¡¼¥¹)¤òºîÀ®¤·¡¢
¤½¤ì¤ò¸µ¤Ë¥ì¥¢¥ê¥Æ¥£¤Ë±þ¤¸¤¿¥¢¥¤¥Æ¥à¤Î¥Ç¡¼¥¿¤ò¥é¥ó¥À¥à¤ÇÃê½Ð¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¡¡
¡¡Ãê½Ð·ë²Ì¤È¤½¤Î²áÄø¤Ë¤Ä¤¤¤Æ¤Ï Debug.Log ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¡¢¤ª»È¤¤¤ÎÆñ°×Å٤ȡ¢Ë«¾Þ¤ÎÄ󶡳ä¹ç¤ò¸µ¤ËË«¾Þ¤¬¥é¥ó¥À¥à¤ËÃêÁª¤µ¤ì¤ë¤«¡¢³Îǧ¤ò¹Ô¤¤¤Þ¤¹¡£



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

¡¡¡¦¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¥²¡¼¥àÆâ¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤¹¤ëÊýË¡
¡¡¡¦Linq¤Îµ¡Ç½¤Î¼ÂÁõÎã¡¡¡ÁWhere ¥á¥½¥Ã¥É¡¢ToList ¥á¥½¥Ã¥É¡¢Sum ¥á¥½¥Ã¥É¡¢Select ¥á¥½¥Ã¥É¡¢ToArray ¥á¥½¥Ã¥É¡Á



£±¡¥ÃêÁª½èÍý¤Îή¤ì


¡¡Á°Äó¤È¤·¤Æ¡¢´õ¾¯Å٤ΰ㤦¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤¬¤¢¤ê¡¢¤½¤Î¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Ë¤Ï¤µ¤é¤Ë¡¢Ë«¾Þ¤È¤Ê¤ë¥Ç¡¼¥¿¤Î´õ¾¯ÅÙ¤¬¤¢¤ê¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤á¤Ë¤Ï¡¢¹ç·×£³²ó¤Î°Û¤Ê¤ëÃêÁª½èÍý¤¬É¬Íפˤʤê¤Þ¤¹¡£

¡¡£±¡¥¤É¤Î¼ïÎà¤Î¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤òÍøÍѤ¹¤ë¤Î¤«¡¢ÃêÁª¤¹¤ë¡£
¡¡¡¡¡¡¡¡¡¡¢ª¡¡¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¼ïÎब¡Ö¥Ö¥í¥ó¥º¡×¡Ö¥·¥ë¥Ð¡¼¡×¡Ö¥´¡¼¥ë¥É¡×¤À¤È¤·¤¿¤é¡¢¤½¤Î¤É¤ì¤ò»È¤¦¤Î¤«·è¤á¤ë¡£

¡¡£²¡¥¡Ú£±¡Û¤Ç·è¤Þ¤Ã¤¿¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë¡¢Ë«¾Þ¤Î½Ð¤ä¤¹¤µ(¥ì¥¢¥ê¥Æ¥£)¤òÃêÁª¤¹¤ë¡£
¡¡¡¡¡¡¡¡¡¡¢ª¡¡¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Ë¤Ï¡Ö¥³¥â¥ó¡×¡Ö¥¢¥ó¥³¥â¥ó¡×¡Ö¥ì¥¢¡×¤ÎÀßÄêÃͤ¬¤¢¤ê¡¢¤½¤Î¤É¤ì¤ò»È¤¦¤Î¤«·è¤á¤ë¡£

¡¡£³¡¥Ë«¾Þ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÃ椫¤é¡¢¡Ú£²¡Û¤Ç·è¤Þ¤Ã¤¿¥ì¥¢¥ê¥Æ¥£¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëË«¾Þ¤Î¥Ç¡¼¥¿¤Î¤ß¤òÃê½Ð¤¹¤ë
¡¡¡¡¡¡¡¡¡¡¢ª¡¡Ë«¾Þ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ë¤Ï¡¢¤¹¤Ù¤Æ¤ÎË«¾Þ¥Ç¡¼¥¿¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢¤Þ¤ººÇ½é¤Ë¡Ú£²¡Û¤Î¥ì¥¢¥ê¥Æ¥£¤Ë³ºÅö¤¹¤ëË«¾Þ¥Ç¡¼¥¿¤Î¤ß¤ò½¦¤¤½Ð¤¹¡£
¡¡¡¡¡¡¡¡¡¡¡¡¡¡Î㤨¤Ð¡¢¡Ú£²¡Û¤ÎÃêÁª·ë²Ì¤¬¡Ö¥¢¥ó¥³¥â¥ó¡×¤Ç¤¢¤ë¾ì¹ç¡¢Ë«¾Þ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÃæ¤Ë¤¢¤ë¡¢¥ì¥¢¥ê¥Æ¥£¤¬¡Ö¥¢¥ó¥³¥â¥ó¡×¤ÎË«¾Þ¥Ç¡¼¥¿¤Î¤ß¤òÃê½Ð¤·¤Æ¥ê¥¹¥È²½¤¹¤ë¡£

¡¡£´¡¥¡Ú£³¡Û¤ÇÃê½Ð¤·¤¿¡¢¡Ú£²¡Û¤ÎÃêÁª·ë²Ì¤Î¤ß¤Ç¹½À®¤µ¤ì¤Æ¤¤¤ëË«¾Þ¥Ç¡¼¥¿¤Î¥ê¥¹¥È¤«¤é¡¢¤½¤ì¤¾¤ì¤ÎË«¾Þ¥Ç¡¼¥¿¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÇÓ½ÐΨ¤ò¹ç·×¤·¤¿¾å¤Ç¡¢
¡¡¡¡¡¡ºÇ½ªÅª¤ËÇӽФ¹¤ëË«¾Þ¥Ç¡¼¥¿¤òÃêÁª¤·¡¢³ÎÄꤹ¤ë¡£


£²¡¥¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¤Î½àÈ÷¤ò¹Ô¤¦

£±¡¥Àß·×


¡¡¼ÂÁõ¤¹¤ë½èÍý¤È¤·¤Æ¤Ï¡¢¥Ç¥Ð¥Ã¥°ÍѤΥܥ¿¥ó¤ò²¡¤¹¤´¤È¤Ë¡¢½Å¤ßÉÕ¤±¤òÍøÍѤ·¤¿¥é¥ó¥À¥à¤ÊÃêÁª½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
ËÜÈÖÍѤˤϡ¢¤³¤Î½èÍý¤òÆ°¤«¤¹Éôʬ¤òÊ̤νèÍý¤Èɳ¤Å¤±¤ÆÍøÍѤ¹¤ë¤³¤È¤ò¸¡Æ¤¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡Æ±¼ïÎàÆâ¤Ë°Û¤Ê¤ëÆâÍƤΥǡ¼¥¿¤¬¤¢¤ë¾ì¹ç¡¢¤Þ¤º¤Ï¼ïÎà¤òÆÃÄꤷ¡¢¤½¤Î¸å¡¢ÆÃÄꤵ¤ì¤¿¼ïÎà¤Î¤ß¤òÃêÁªÂоݤȤʤë¤è¤¦¤Ë¤·¤Þ¤¹¡£
ºÇ¸å¤Ë¡¢½Å¤ßÉÕ¤±¤òÍøÍѤ·¤Æ¡¢ÃêÁªÂоݤȤ·¤Æ½Ð¤ä¤¹¤¤¤â¤Î¡¢½Ð¤Ë¤¯¤¤¤â¤Î¤ò²ÃÌ£¤·¤¿¾å¤Ç¡¢·ë²Ì¤òÃê½Ð¤·¤Þ¤¹¡£

¡¡³èÍÑÊýË¡¤È¤·¤ÆÁÛÄꤷ¤Æ¤¤¤ëÆâÍƤȤ·¤Æ¤Ï¡¢¥¬¥Á¥ã¤ÎÃêÁª·ë²Ì¡¢ÊüÃÖ·Ï¥²¡¼¥à¤ÎÊó½·¤ÎÃêÁª·ë²Ì¡¢¤Ê¤É¤Ç¤¹¡£
¥¬¥Á¥ã¤Î¥ì¥¢¥ê¥Æ¥£¤¬Ê£¿ô¤¢¤ê¡¢¤½¤Î¥ì¥¢¥ê¥Æ¥£Æâ¤Ë¤Ï°Û¤Ê¤ë¥Ç¡¼¥¿¤Î¾ðÊó¤¬Ê£¿ô¤¢¤ë¡¢¤È¤¤¤¦¤È¤­¤ËÍøÍѤǤ­¤Þ¤¹¡£
¡¡


¡ã¼ïÎà¡¡Îã¡ä
¡¡¡¦¥ì¥¢¥ê¥Æ¥£(´õ¾¯ÅÙ)¤È½Ð¤ä¤¹¤µ
¡¡¡¡¡¡£±¡¥¥³¥â¥ó¡¡¡¡¡¡¡¡¡¡700
¡¡¡¡¡¡£²¡¥¥¢¥ó¥³¥â¥ó¡¡¡¡¡¡200
¡¡¡¡¡¡£³¡¥¥ì¥¢¡¡¡¡¡¡¡¡¡¡¡¡100

¡ã¥³¥â¥óÏÈ¡¡Îã¡ä
¡¡¡¦¥Ç¡¼¥¿¤È½Ð¤ä¤¹¤µ
¡¡¡¡£±¡¥¥Ý¡¼¥·¥ç¥ó¡¡¡¡250
¡¡¡¡£²¡¥´¬Êª¡¡¡¡¡¡¡¡¡¡100
¡¡¡¡£³¡¥¥ì¥¤¥Ô¥¢¡¡¡¡¡¡ 30



¡¡¤³¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¤Þ¤º¡¢¥ì¥¢¥ê¥Æ¥£Æâ¤Î½Ð¤ä¤¹¤µ¤Î¿ôÃͤò¹ç·×¤·¤ÆÃêÁª¤ò¹Ô¤¤¡¢¥ì¥¢¥ê¥Æ¥£¤ò·èÄꤷ¤Þ¤¹¡£
Î㤨¤Ð¡¢¥³¥â¥ó¤Ç¤¢¤ì¤Ð¡¢700 / 1000 ¤Î³ÎΨ¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¹Í¤¨Êý¤¬½Å¤ßÉÕ¤±¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤½¤Î¸å¡¢¥³¥â¥óÆâ¤Î¥Ç¡¼¥¿¤Î¿ôÃͤò¹ç·×¤·¤ÆÃêÁª¤ò¹Ô¤¤¡¢¤É¤Î¥Ç¡¼¥¿¤¬Ãê½Ð¤µ¤ì¤ë¤«¤ò·èÄꤷ¤Þ¤¹¡£
Î㤨¤Ð¡¢´¬Êª¤Ç¤¢¤ì¤Ð¡¢100 / 380 ¤Î³ÎΨ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡½Å¤ßÉÕ¤±¤òÍøÍѤ¹¤ë¾ì¹ç¡¢¿ôÃÍ¤Ï 100 ¤ò¹ç·×Ãͤδð½à¤È¤Ï¤·¤Þ¤»¤ó¡£
¹ç·×ÃͤËÂФ·¤Æ¤Î¸Ä¡¹¤ÎÃͤò³ä¹ç¤È¤·¤ÆÍøÍѤ·¡¢·×»»·ë²Ì¤È¤·¤Æ 100 % ¤Ë¤Ê¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£


£²¡¥¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤È¤Ï


¡¡³Æ¼ï¤Î¥Ç¡¼¥¿¤Ï¸ÄÊ̤ÎÊÑ¿ô¤Ç´ÉÍý¤·¤¿¤Î¤Ç¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹²½½ÐÍè¤Þ¤»¤ó¡£
¤½¤Î¤¿¤áº£²ó¤Ï¡¢¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¼ïÎà¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¡¢Ë«¾Þ¥Ç¡¼¥¿¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î£²¤Ä¤Î¾ðÊó¤ò
¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆºîÀ®¤·¡¢¤½¤ì¤¾¤ì¤Î¥Ç¡¼¥¿¤òÅÐÏ¿¤·¤ÆÍøÍѤ¹¤ëÊýË¡¤òºÎÍѤ·¤Æ¤¤¤Þ¤¹¡£



¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï Unity ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëµ¡Ç½¤Î£±¤Ä¤Ç¤¢¤ê¡¢
Ǥ°Õ¤Î¥¯¥é¥¹¤Î¾ðÊó¤ò¤Þ¤È¤á¤Æ¡¢£±¤Ä¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤Æ´ÉÍý¤¹¤ë¤¿¤á¤Îµ¡Ç½¤Ç¤¹¡£

¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢ÀìÍѤΥ¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¤³¤È¤Ç¡¢¥¢¥»¥Ã¥È¤È¤·¤ÆºîÀ®¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÍѤΥ¹¥¯¥ê¥×¥È¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£
Âå¤ï¤ê¤Ë¡¢¤¤¤º¤ì¤«¤Î¥¹¥¯¥ê¥×¥ÈÆâ¤Ë¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆºîÀ®¤·¤¿¥Ç¡¼¥¿·¿¤ÎÊÑ¿ô¤òÀë¸À¤·¤Æ¡¢¥¢¥»¥Ã¥È¤ò¥¢¥µ¥¤¥ó¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£


¡ã»²¹Í¥µ¥¤¥È¡ä
Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë
ScriptableObject
Unity ¸ø¼°¥µ¥¤¥È
SCRIPTABLEOBJECT ¤ò»ÈÍѤ·¤Æ¥²¡¼¥à¤ò¹½ÃÛ¤¹¤ë 3 ¤Ä¤ÎÊýË¡
¤¯¤í¤¯¤Þ¤½¤Õ¤È ÍÍ
¡ÚUnity¡ÛScriptableObject¤Îºî¤êÊý¡¦»È¤¤Êý



¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤éǤ°Õ¤ÎÃͤòÅÐÏ¿¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤¿¤á¡¢ÅÐÏ¿¤È³Îǧ¤ò¹Ô¤¤¤ä¤¹¤¤¤Î¤¬ÆÃħ¤Ç¤¹¡£
¤¿¤À¤·¡¢ÅÐÏ¿¤¹¤ë¥Ç¡¼¥¿¤ÎÎ̤¬Áý¤¨¤ë¾ì¹ç¤Ë¤Ï¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é£±¤Ä¤º¤Ä¼êÆþÎϤ¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¤Æ¡¢
¥¹¥×¥ì¥Ã¥É¥·¡¼¥È¤ä¥¨¥¯¥»¥ë¤Ê¤É¤Î¥·¡¼¥È¤ÈÏ¢·È¤·¤Æ¡¢¥¹¥×¥ì¥Ã¥É¥·¡¼¥È¤Î¾ðÊó¤ò¤½¤Î¤Þ¤Þ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¼«Æ°Åª¤ËÅÐÏ¿¤¹¤ë¼êË¡¤â¤¢¤ê¤Þ¤¹¡£


£²¡¥TreasureType ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡º£²ó¤Ï¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¼ïÎà¤ÎʬÎà¤È¤·¤Æ¥ì¥¢¥ê¥Æ¥£¤ò enum ¤Ë¤ÆºîÀ®¤·¤Þ¤¹¡£
¼ÂºÝ¤Ë±¿ÍѤ¹¤ëºÝ¤Ë¤Ï¡¢¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤Ë¹ç¤ï¤»¤ÆǤ°Õ¤ËºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£


TreasureType

TreasureType.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£³¡¥TreasureBoxData ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¾ðÊó¤ò¤Þ¤È¤á¤¿¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¥¯¥é¥¹¤Î¾ðÊ󤬡¢£±¤Äʬ¤Î¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤ÎÆâÍÆ¡¦¾ÜºÙ¤È¤Ê¤ê¤Þ¤¹¡£


TreasureBoxData.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£´¡¥TreasureBoxDataSO ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡¡Ú£³¡Û¤Î¼ê½ç¤ÇºîÀ®¤·¤¿ TreasureBoxData ¥¯¥é¥¹¤Ï¡¢£±¤Äʬ¤Î¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¾ðÊ󷲤Ǥ¹¡£
¤½¤Î¤¿¤á¡¢Ê£¿ô¤Î¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¾ðÊó¤ò°·¤¦¤¿¤á¤Ë¤Ï¡¢List ¤Ê¤É¤òÍøÍѤ·¡¢£±¤Ä¤ÎÊÑ¿ôÆâ¤ËÊ£¿ô¤Î TreasureBoxData ¥¯¥é¥¹¤ò´ÉÍý¤µ¤»¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡¡º£²ó¤Ï¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¡¢Ê£¿ô¤Î TreasureBoxData ¤ò´ÉÍý½ÐÍè¤ë¤è¤¦¤Ë¤·¤Þ¤¹¤Î¤Ç¡¢
¤³¤³¤Ç¤Ï¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¤ËɬÍ×¤Ê TreasureBoxDataSO ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Þ¤¹¡£

¡¡MonoBehaviour ¥¯¥é¥¹¤ÎÂå¤ï¤ê¤Ë¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÀìÍѤΠScriptableObject ¥¯¥é¥¹¤ò·Ñ¾µ¤·¡¢
¥¯¥é¥¹¾å¤Ë [CreateAssetMenu] °À­¤òµ­½Ò¤¹¤ë¤³¤È¤Ç¡¢¤³¤Î¥¹¥¯¥ê¥×¥È¤«¤é¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥»¥Ã¥È¤È¤·¤ÆºîÀ®²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡


¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¡¢List ¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢»ØÄꤷ¤¿¥Ç¡¼¥¿¤òÊ£¿ô¤Î¥Ç¡¼¥¿¤È¤·¤Æ¤Þ¤È¤á¤Æ´ÉÍý¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤Æ¤ÎÌò³ä¤ò²Ì¤¿¤¹¤³¤È¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡º£²ó»ØÄꤷ¤Æ´ÉÍý¤·¤¿¤¤¥Ç¡¼¥¿¤Ï¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¼ïÎà¤È¡¢¤½¤Î¼ïÎà¤Ë¤è¤ë´õ¾¯ÅÙ¤´¤È¤Î½Ð¸½Î¨¤Î¥Ç¡¼¥¿¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢TreasureBoxData ·¿¤Î List ¤òºîÀ®¤·¤Æ¡¢´ÉÍý¤ò¹Ô¤¨¤ë¾õÂ֤Ȥ·¤ÆºîÀ®¤ò¹Ô¤¤¤Þ¤¹¡£



TreasureBoxDataSO.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£µ¡¥RarityType ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î¤È¤­¤ÈƱ¤¸¤è¤¦¤Ë¡¢Ë«¾Þ¥Ç¡¼¥¿¤Î´õ¾¯ÅÙ¤ÎʬÎà¤ò¹Ô¤¦¤¿¤á¤Î enum ¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¾ðÊó¤òË«¾Þ¥Ç¡¼¥¿¤ËÍøÍѤ·¤Æ¡¢´õ¾¯Å٤ζèÊ̤òºî¤ê¤Þ¤¹¡£


RarityType.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£¶¡¥RewardData ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡Êó½·¾ðÊó¤ò¤Þ¤È¤á¤¿¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
Î㤨¤Ð¡¢¥­¥ã¥é¤Î¾ðÊó¤Ç¤¢¤Ã¤¿¤ê¡¢¥¢¥¤¥Æ¥à¤Î¾ðÊó¤Ê¤É¤ò£±¤Ä¤Î¥Ç¡¼¥¿¤Î²ô¤È¤·¤Æ´ÉÍý¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£


RewardData.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£·¡¥RewardDataSO ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡ºîÀ®¤·¤¿ RewardData ¥¯¥é¥¹¤ò List ¤Ç¤Þ¤È¤á¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ´ÉÍý¤·¤Þ¤¹¡£
RewardData ¥¯¥é¥¹¤Ë¤Ï¡¢£±¤Äʬ¤ÎË«¾Þ¤Î¥Ç¡¼¥¿(£±¤Äʬ¤Î¥¢¥¤¥Æ¥à¤ä¥­¥ã¥é¤Î¥Ç¡¼¥¿)¤¬¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¤½¤ì¤é¤Î¾ðÊó¤ò¤Þ¤È¤á¤Æ¤ª¤¯ List ¤òºî¤ë¤³¤È¤Ç¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѽÐÍè¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£


RewardDataSO.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£³¡¥¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢¥Ç¡¼¥¿¤òÅÐÏ¿¤¹¤ë

£±¡¥TreasureBoxDataSO ¥¹¥¯¥ê¥×¥È¤ò¸µ¤Ë TreasureBoxDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë


¡¡TreasureBoxDataSO ¥¹¥¯¥ê¥×¥È¤ò¸µ¤Ë TreasureBoxDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£
TreasureBoxDataSO ¥¹¥¯¥ê¥×¥È¤ËÍÑ°Õ¤·¤Æ¤¢¤ë JobTypeRewardRatesData ·¿¤Î List ¤Ç¤¢¤ë treasureBoxDataList ÊÑ¿ô¤¬¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÌò³ä¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥Õ¥©¥ë¥Àʬ¤±¤·¤Æ´ÉÍý¤·¤Æ¤ª¤¯¤ÈÊØÍø¤Ç¤¹¤Î¤Ç¡¢¿·¤·¤¯ Project ¥Õ¥©¥ë¥ÀÆâ¤Ë Datas ¥Õ¥©¥ë¥À¤òºîÀ®¤·¤Æ¤ª¤­¤Þ¤¹¡£
¾¤Ë¤â ScriptableObjects ¤È¤¤¤Ã¤¿¥Õ¥©¥ë¥À̾¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£

¡¡¤½¤Î Datas ¥Õ¥©¥ë¥À¤Ë¤Æ Unity ¤Îº¸¾å¤Î¥á¥Ë¥å¡¼¤è¤ê¡¢Assets => Create => Create TreasureBoxDataSO ¤òÁªÂò¤·¤Þ¤¹¡£
¿·¤·¤¯ TreasureBoxDataSO ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£Ì¾Á°¤Ï¤½¤Î¤Þ¤Þ¤Ç¹½¤¤¤Þ¤»¤ó¡£
¤³¤Î¥á¥Ë¥å¡¼¤¬É½¼¨¤µ¤ì¤Ê¤¤¾ì¹ç¡¢TreasureBoxDataSO ¥¹¥¯¥ê¥×¥È¤Ë CreateAssetMenu °À­¤ÎÉÕÍ¿¤¬È´¤±¤Æ¤¤¤Þ¤¹¡£¸«Ä¾¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤³¤Î¥¢¥¤¥³¥ó¤Î·Á¤¬°ã¤¦¥Õ¥¡¥¤¥ë¤¬¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤Î¥¢¥¤¥³¥ó¤Ï¡¢¤³¤Î¥Õ¥¡¥¤¥ë¤¬¥¢¥»¥Ã¥È¤È¤·¤Æ¼è¤ê°·¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡¢¤È¤¤¤¦¤³¤È¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£


¡ã¥Õ¥©¥ë¥À´ÉÍý(¤³¤Î¼ê½ç¤¬½ªÎ»¤·¤¿¤È¤­¤Î¾õÂÖ)¡ä



£²¡¥TreasureBoxDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÆâÍƤÎÅÐÏ¿¤ò¹Ô¤¦


¡¡ºîÀ®¤µ¤ì¤¿ TreasureBoxDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Æ¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Þ¤¹¡£
TreasureBoxDataSO ¥¹¥¯¥ê¥×¥È¤Ë¤ÆÀë¸À¤·¤¿ treasureBoxDataList ÊÑ¿ô¤¬¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ëɽ¼¨¤µ¤ì¤Æ¡¢ Size¤¬ 0 ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤¬¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÃæ¿È¤Ç¤¹¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



¡¡¤³¤Î¤È¤­¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë Size ¤ÎÉôʬ¤¬É½¼¨¤µ¤ì¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
TreasureBoxDataSO ¥¹¥¯¥ê¥×¥ÈÆâ¤Î treasureBoxDataList ÊÑ¿ô¤ò public ½¤¾þ»Ò¤ÇÀë¸À¤·¤Æ¤¤¤Ê¤¤²ÄǽÀ­¤¬¤¢¤ê¤Þ¤¹¡£

¡¡¸«Ä¾¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£



¡¡Size ¤ËǤ°Õ¤Î¿ô¤òÆþÎϤ¹¤ë¤È¡¢Æ±¿ô¤Î Element ¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£¤³¤ì¤¬ List ¤Ç´ÉÍý¤¹¤ë TreasureBoxData ¥¯¥é¥¹¤Î¾ðÊ󷲤ˤʤê¤Þ¤¹¡£

¡¡¤³¤Î¤È¤­¡¢Size ¤ÎÃͤòÊѹ¹¤·¤Æ¤â¡¢Element ¤ÎÆâÍÆ(TreasureBoxData ¥¯¥é¥¹¤ÎÆâÍÆ)¤¬É½¼¨¤µ¤ì¤Ê¤¤¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
¤½¤ÎºÝ¤Ë¤Ï¡¢TreasureBoxData ¥¹¥¯¥ê¥×¥ÈÆâ¤Ë System.Serializeble °À­¤Î½ñ¤­Ï³¤ì¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¸«Ä¾¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£



¡¡º£²ó¤Ï¡¢¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î´õ¾¯Å٤˹ç¤ï¤»¤Æ¡¢¥Ç¡¼¥¿¤ò£³¤ÄʬÅÐÏ¿¤·¤Æ¤ª¤­¤¿¤¤¤È»×¤¤¤Þ¤¹¡£
treasureBoxDataList ÊÑ¿ô¤Î Size ¤ò 3 ¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£Element 0 ¡Á 2 ¤¬²¼¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£

¡¡Element ¤È¤Ï List ¤ÎÍ×ÁÇ(Ãæ¿È)¤Î¤³¤È¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢Element £±¤Ä¤¬ TreasureBoxData £±¤Ä¤Ë¤Ê¤ê¤Þ¤¹¡£Element ¤ÎÈÖ¹æ¤Ï 0 ¤«¤é»Ï¤Þ¤ê¤Þ¤¹¡£

¡¡°Ê¾å¤Î¤³¤È¤«¤é¡¢£±¤Ä¤Î Element ¤Ë¤Ï£±¤Ä¤Î TreasureBoxData ¥¯¥é¥¹¤ÎÆâÍƤòÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¤È¤­¡¢TreasureBoxData ¥¯¥é¥¹¤Î¾å¤Ë [Serializable] °À­¤òÀë¸À¤·¤Æ¤¤¤ë¤Î¤Ç¡¢TreasureBoxData ¥¯¥é¥¹¤ÎÆâÍƤ¬¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£



¡¡²¼µ­¤Î²èÁü¤Ï»²¹Í²èÁü¤Ç¤¹¡£Element ¤Î Size °Ê³°¤ÎÉôʬ¤Î³ÆÀßÄê¤ò¹Ô¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡TreasureType ÊÑ¿ô¤Ë¤Ï¤½¤ì¤¾¤ì°Û¤Ê¤ë¼ïÎà¤òÅÐÏ¿¤·¡¢RewardRates ÇÛÎóÊÑ¿ô¤Ï Size ¤ò 3 ¤ËÀßÄꤷ¤Æ¡¢Element 0 ¡Á 2 ¤òÄɲä·¤Þ¤¹¡£
¤³¤ÎÇÛÎó¤Ë¤Ï¡¢Ë«¾Þ¥Ç¡¼¥¿¤Î´õ¾¯ÅÙ¤´¤È¤ÎÄ󶡳ä¹ç¤òÅÐÏ¿¤·¤Þ¤¹¡£
RewardRates ÇÛÎóÊÑ¿ô¤Î Element 0 ¤Ï Common¡¢Element 1 ¤Ï Uncommon¡¢Element 2 ¤Ï Rare ¤ÎÇÓ½ÐÃͤˤʤê¤Þ¤¹¡£

¡¡¤³¤Î rewardRates ÇÛÎóÊÑ¿ô¤Î¹ç·×ÃÍ¤Ï 100 ¤ä 1000 ¤Ë¤Ê¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç³ÎΨ¤È¤·¤Æ°·¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¤¬¡¢
½Å¤ßÉÕ¤±¤ò¤·¤ÆÃêÁª¤ò¹Ô¤¦¤¿¤á¡¢¹ç·×Ãͤˤ³¤À¤ï¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



¡¡°Ê¾å¤ÇÅÐÏ¿´°Î»¤Ç¤¹¡£


£³¡¥RewardDataSO ¥¹¥¯¥ê¥×¥È¤ò¸µ¤Ë RewardDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢ÆâÍƤÎÅÐÏ¿¤ò¹Ô¤¦


¡¡¾åµ­¤Î¡Ú£±¡Û¡¢¡Ú£²¡Û¤Î¼ê½ç¤ÈƱ¤¸¤è¤¦¤Ë¤·¤Æ¡¢RewardDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢¤ÎÆâÍƤÎÅÐÏ¿¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£

¡¡²¼µ­¤Ï»²¹Í²èÁü¤Ç¤¹¡£³Æ¥ì¥¢¥ê¥Æ¥£¤Ë¤Ä¤­ÃêÁª¤ò¹Ô¤¦¤¿¤á¡¢ºÇÄã¤Ç¤â£²¼ïÎऺ¤ÄÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



¡¡°Ê¾å¤ÇÅÐÏ¿´°Î»¤Ç¤¹¡£


£´¡¥RewardManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢£²¤Ä¤Î¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò±¿ÍѤ·¤Æ¡¢Ë«¾Þ¥Ç¡¼¥¿¤ò¥é¥ó¥À¥à¤ËÃê½Ð¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤¹¤ë

£±¡¥Àß·×


¡¡ÃêÁª½èÍý¤ÏÈó¾ï¤ËÊ£»¨¤Ê¥í¥¸¥Ã¥¯¡¦½èÍý¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤ÈÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¤³¤Î¥Ú¡¼¥¸¤ÎºÇ½é¤Ë¾Ò²ð¤·¤Æ¤¤¤ëÃêÁª½èÍý¤Îή¤ì¤â¸«Ä¾¤·¤Æ¤ª¤¯¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£



¡¡¤Þ¤º¤Ï¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤ËÀßÄꤵ¤ì¤Æ¤¤¤ë TreasureType ¤ò¸µ¤Ë¡¢TreasureDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¡¢
¤½¤Î¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Ë¤ª¤±¤ë´õ¾¯ÅÙ¤ÎÄ󶡳ä¹ç¤ò¾È¹ç¤·¤Æ¥Ç¡¼¥¿¤ò¼èÆÀ¤·¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î TreasureType ¤¬ Bronze ¤Ç¤¢¤ë¾ì¹ç¡¢TreasureDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î Element 0 ¤¬¾È¹ç¤·¤Æ³ºÅö¤·¤Þ¤¹¤Î¤Ç¡¢
¤½¤Î Element 0 Æâ¤Ë¤¢¤ë RewardRates ÇÛÎó¤ÎÃͤò´õ¾¯Å٤Ȥ·¤ÆÍøÍѤ·¡¢¤½¤ì¤¾¤ì¡¢Common ¤ÎÄ󶡳ä¹ç¡¢Normal ¤ÎÄ󶡳ä¹ç¡¢Rare ¤ÎÄ󶡳ä¹ç¤È¤·¤Æ½àÈ÷¤·¤Þ¤¹¡£



¡¡¼¡¤Ë¥é¥ó¥À¥à¤ÊÃͤò£±¤Ä¼èÆÀ¤·¡¢¾åµ­¤ÎÄ󶡳ä¹ç¤Î¤É¤ÎÉôʬ¤Ë³ºÅö¤¹¤ë¤«¤ò¾È¹ç¤·¤Þ¤¹¡£
¥é¥ó¥À¥à¤ÊÃͤκÇÂçÃͤÏÄ󶡳ä¹ç¤Î¹ç·×ÃͤȤ·¡¢¤½¤ÎÈÏ°ÏÆâ¤ÇÃͤò¼èÆÀ¤¹¤ë¤Î¤Ç¡¢¤³¤ì¤é¤ÎÄ󶡳ä¹ç¤ÎÃͤò¾å²ó¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¡¡¥é¥ó¥À¥à¤ÊÃͤˤè¤Ã¤Æ´õ¾¯ÅÙ¤¬·èÄꤷ¤¿¤é¡¢¼¡¤Ï¡¢¤½¤Î´õ¾¯Å٤˴ޤޤì¤ëË«¾Þ¤Î¼ïÎà¤È¡¢¤½¤Î½Ð¸½³ä¹ç¤ò½àÈ÷¤·¤Þ¤¹¡£
Î㤨¤Ð¡¢´õ¾¯ÅÙ¤¬ Common ¤Ë·èÄꤷ¤¿¾ì¹ç¡¢Common ¤ÎË«¾Þ¤Ï£³¼ïÎढ¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤Î£³¼ïÎà¤Î¤¤¤º¤ì¤«£±¤Ä¤òÄ󶡤¹¤ë¤¿¤á¤Ë¡¢¤½¤ì¤é¤Î½Ð¸½³ä¹ç¤ò½àÈ÷¤·¤Þ¤¹¡£

¡¡ºÆÅÙ¥é¥ó¥À¥à¤ÊÃͤò£±¤Ä¼èÆÀ¤·¡¢Ë«¾Þ¤Î½Ð¸½³ä¹ç¤«¤é¡¢¤É¤ÎË«¾Þ¤Ë³ºÅö¤¹¤ë¤Î¤«¤ò¾È¹ç¤·¤Þ¤¹¡£
¤³¤Á¤é¤Î¥é¥ó¥À¥à¤ÊÃͤâ½Ð¸½³ä¹ç¤Î¹ç·×ÃͤȤ¹¤ë¤³¤È¤Ç¡¢½Ð¸½³ä¤ê¤ò¾å²ó¤ë¤³¤È¤¬¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡¤³¤Î¼ê½ç¤ò£±¤Ä¤Î¥á¥½¥Ã¥ÉÆâ¤Ë½çÈ֤˵­½Ò¤·¤Æ¤¤¤­¤Þ¤¹¡£
½èÍý¤Î¥¤¥á¡¼¥¸¤ò¤Ä¤«¤ó¤Ç¤«¤é»Ï¤á¤Æ¤¯¤À¤µ¤¤¡£¤Þ¤¿½èÍý¤Ë¤Ï Linq ¤È¤¤¤¦µ¡Ç½¤òÊ£¿ôÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¤³¤Î¥Ú¡¼¥¸¤Î²¼Ãʤ˲òÀ⤬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤â»²¹Í¤ËÆɤ߲ò¤¤¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤³¤³¤ÇË«¾Þ¥Ç¡¼¥¿¤ò·èÄꤹ¤ë¤³¤È¤Þ¤Ç¤¬¡¢º£²ó¤Î¼ÂÁõ¤Ë¤Ê¤ê¤Þ¤¹¡£
¼ÂºÝ¤Î¥²¡¼¥à¤Ë¤ª¤¤¤Æ¤Ï¡¢¤³¤ÎË«¾Þ¥Ç¡¼¥¿¤ò»È¤Ã¤¿¼¡¤Î¼ê½ç¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢ÃêÁª½èÍý¤È¼¡¤Î½èÍý¤ò·Ò¤²¤ÆÍøÍѤ¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


£²¡¥RewardManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÅÐÏ¿¤·¤Æ´ÉÍý¤¹¤ë¤¿¤á¤ÎÊÑ¿ô¤ò RewardDataSO ·¿¤È TreasureBoxDataSO ·¿¤Ç¤½¤ì¤¾¤ìÀë¸À¤·¤Æ¤ª¤­¤Þ¤¹¡£
¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÈƱ¤¸·¿¤Ë¤¹¤ë¤³¤È¤ÇÂåÆþ¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤³¤Î¤È¤­¡¢SerializeField °À­ÉÕ¤­¤ÇÀë¸À¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤ê¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÂåÆþ¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡ÃêÁª½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢ÀìÍѤΥ᥽¥Ã¥É¤òÄêµÁ¤·¡¢Ìá¤êÃͤòÍøÍѤ·¤ÆÃêÁª·ë²Ì¤òÄ󶡤·¤Þ¤¹¡£

¡¡¤³¤ÎÃêÁª»þ¤ËÍøÍѤ¹¤ë¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î´õ¾¯Å٤ϡ¢º£²ó¤Ï SerializeField °À­ÉÕ¤­¤ÎÊÑ¿ô¤ÇÀë¸À¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤¦¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ç¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î´õ¾¯ÅÙ¤ÎÃͤòÊѤ¨¤ë¤À¤±¤Ç¡¢°Û¤Ê¤ë´õ¾¯Å٤ΥǥХå°¤ò
¥¹¥¯¥ê¥×¥ÈÆâ¤ÎÊѹ¹¤Ê¤·¤Ç¹Ô¤¨¤ë¤è¤¦¤Ë¸úΨ²½¤·¤Æ¤¤¤Þ¤¹¡£

¡¡ÃêÁª½èÍý¤Ë¤Ï Linq ¤Îµ¡Ç½¤òÍøÍѤ·¤Þ¤¹¤Î¤Ç¡¢using ¤Ë¤ÆÀë¸À¤·¤Þ¤¹¡£



RewardManager.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£


£µ¡¥RewardManager ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢RewardManager ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÀßÄê¤ò¹Ô¤¦


¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤Æ CreateEmpty ¤ò¹Ô¤¤¡¢¿·¤·¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢Ì¾Á°¤ò RewardManager ¤ËÊѹ¹¤·¤Þ¤¹¡£
¤½¤Î RewardManager ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ RewardManager ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£


¡ã¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¡ä




¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¡¢SerializeField °À­¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥á¥ó¥ÐÊÑ¿ô¤¬£³¤Äɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¤³¤Á¤é¤Ë¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò£²¤Ä¡¢¥¢¥µ¥¤¥ó¤·¤Þ¤¹¡£¥¢¥µ¥¤¥ó¤¹¤ë¤Î¤Ï Datas ¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ë¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£
(¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¤Ëºî¤Ã¤¿¥¹¥¯¥ê¥×¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£)

¡¡¥Ç¥Ð¥Ã¥°ÍѤΠdebugTreasureType ÊÑ¿ô¤Ë¤Ï¡¢Ç¤°Õ¤Î TreasureType ¤òÀßÄꤷ¤Þ¤¹¡£¤³¤³¤ËÀßÄꤷ¤¿ TreasureType ¤ÎÆâÍƤǡ¢Ë«¾Þ¥Ç¡¼¥¿¤ÎÃêÁª¤ò¹Ô¤¤¤Þ¤¹¡£


¡ã¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¡ä



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


£¶¡¥¡ãLinq ¤Îµ¡Ç½¤Î¼ÂÁõÎã­¡¡¡¡ÁWhere ¥á¥½¥Ã¥É¡¢ToList ¥á¥½¥Ã¥É¡¢Sum ¥á¥½¥Ã¥É¡¢Select ¥á¥½¥Ã¥É¡¢ToArray ¥á¥½¥Ã¥É¡Á¡ä


¡¡Linq¡Ê¥ê¥ó¥¯¡Ë¤È¤Ï¡¢¥³¥ì¥¯¥·¥ç¥ó(Dictionary ¤ä List ¤Ê¤É)¤ÎÍ×ÁǤòÁàºî¤·¤Æ¡¢¸¡º÷¤·¤¿¤ê½¸·×¤¹¤ë½èÍý¤ò´Ê·é¤Ëµ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¥é¥¤¥Ö¥é¥ê(Ê£¿ô¤Îµ¡Ç½¤ò¤Þ¤È¤á¤¿¤â¤Î)¤Ç¤¹¡£

¡¡Linq¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ïusing ¤ÎÀë¸À¤¬É¬Íפˤʤê¤Þ¤¹¡£º£²óºîÀ®¤·¤¿¥á¥½¥Ã¥ÉÆâ¤ËÅо줷¤Æ¤¤¤ë½èÍý¤Ç¤¹¤Î¤Ç¡¢Éü½¬¤·¤ÆÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£

using System.Linq;



¡¡Linq¤òµ­½Ò¤¹¤ëºÝ¤Ë¤Ï¥é¥à¥À¼°¤Îµ­½Ò¤òÍѤ¤¤Þ¤¹¡£¥é¥à¥À¼°¤Ë¤Ä¤¤¤Æ¤Ï¤³¤Á¤é¤ò¤´³Îǧ¤¯¤À¤µ¤¤¡£
SamuraiBlogÍÍ
¡ÚC#ÆþÌç¡ÛLINQ¤Î»È¤¤ÊýÁí¤Þ¤È¤á(Select¡¢Where¡¢GroupBy¤Ê¤É)
https://www.sejuku.net/blog/56519

¡¡Linq¤Ë¤Ï¿¤¯¤Îµ¡Ç½¤¬¤¢¤ê¤Þ¤¹¤¬º£²óÍøÍѤ·¤Æ¤¤¤ëµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤Æ¤ª¤­¤Þ¤¹¡£
¤½¤Î¤Û¤«¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Ïµ­»ö¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Á¤é¤Î¥µ¥¤¥È¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£
ÃÏÊ¿Àþ¤Ë¹Ô¤¯ÍÍ
LINQ¤Î³ÈÄ¥¥á¥½¥Ã¥É°ìÍ÷¤È¡¢¤Û¤ÜÁ´Éô¤Î¥µ¥ó¥×¥ë¤òºî¤Ã¤Æ¤ß¤Þ¤·¤¿¡£
https://yujisoftware.hatenablog.com/entry/20111031...


£±¡¥Where ¥á¥½¥Ã¥É


¡¡ÇÛÎó¤ä List ¤Ê¤É¤Î¥³¥ì¥¯¥·¥ç¥ó¤ËÂФ·¤Æ¥Õ¥£¥ë¥¿¥ê¥ó¥°½èÍý¤ò¹Ô¤¤¡¢»ØÄꤷ¤¿¾ò·ï¤òËþ¤¿¤¹Í×ÁǤΤߤò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ëµ¡Ç½¤Ç¤¹¡£
°ú¿ô¤Ë¤Ï¥Õ¥£¥ë¥¿¥ê¥ó¥°¤ò¹Ô¤¦¾ò·ï¼°¤ò»ØÄꤷ¤Þ¤¹¡£

  // º£²óÂоݤȤʤë´õ¾¯Å٤Υǡ¼¥¿¤À¤±¤Î¥ê¥¹¥È¤òºîÀ®
  List<RewardData> rewardDatas = new List<RewardData>(rewardDataSO.rewardDataList.Where(x => x.rarityType == rarityType).ToList());

¡¡º£²ó¤Î¼ÂÁõÎã¤Ç¤Ï Where ¥á¥½¥Ã¥É¤Î¾ò·ï¼°¤Ë x.rarityType == rarityType ¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï List ·¿¤Î¥³¥ì¥¯¥·¥ç¥ó¤Ç¤¢¤ë rewardDatasList ÊÑ¿ô¤ÎÍ×ÁǤò£±¤Ä¤º¤Ä¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¡¢¾åµ­¤Î¾ò·ï¤Ë¹ç¤¦Í×ÁǤΤߤò¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£
x ¤Ë¤Ï rewardDatasList ÊÑ¿ô¤ÎÍ×ÁǤǤ¢¤ë RewardData ·¿¤Î¾ðÊ󤬣±¤Ä¤º¤Ä½çÈÖ¤ËÂåÆþ¤µ¤ì¡¢RewardData ¥¯¥é¥¹¤Î»ý¤Ä rarityType ¤È°ú¿ô¤ÇÆϤ¤¤Æ¤¤¤ë rarityType ¤È¤ò¾È¹ç¤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤Î½èÍý¤Ï IEnumerable<T> ¤ÎÌá¤êÃͤò»ý¤Ä¤¿¤á¡¢¥á¥½¥Ã¥É¥Á¥§¡¼¥ó¤ò¹Ô¤¦¤³¤È¤Ç¡¢¤³¤Î½èÍý¤Î·ë²Ì¤ò¼¡¤Î½èÍý¤Ë¤Ä¤Ê¤²¤Æ¤¤¤¯¤³¤È¤¬²Äǽ¤Ç¤¹¡£
º£²ó¤Ç¤¢¤ì¤Ð¡¢¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Æ¾È¹ç¤Î¾ò·ï¤òËþ¤¿¤·¤¿Ê£¿ô¤Î RewardData ·¿¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
MicroSoft
Enumerable.Where ¥á¥½¥Ã¥É
https://docs.microsoft.com/ja-jp/dotnet/api/system...
±¢´³¤·Ãæ¤Î¥²¡¼¥à³«È¯¥á¥â
¡ÚC#,LINQ¡ÛWhere¡ÁÇÛÎó¤ä¥ê¥¹¥È¤ò»ØÄꤷ¤¿¾ò·ï¤Ç¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤¿¤¤¤È¤­¡Á
https://www.urablog.xyz/entry/2018/06/27/070000
.NET Column ÍÍ
¡ÚLINQ¤Î¥á¥½¥Ã¥É¾Ò²ð¤½¤Î3¡ÛWhere¤Ç¾ò·ï¤Ë¹ç¤¦¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
https://www.fenet.jp/dotnet/column/language/1458/


£²¡¥ToList ¥á¥½¥Ã¥É


¡¡IEnumerable<T> ¤«¤é List<T> ¤òºîÀ®¤·¤Þ¤¹¡£

¡¡IEnumerable<T> ¤Ï Linq ¤Î½èÍý¤ò¼Â¹Ô¤·¤¿ºÝ¤ÎÌá¤êÃͤξðÊó¤Ç¤¹¡£Î㤨¤Ð¡¢¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Æ»»½Ð¤µ¤ì¤¿·ë²Ì¤ò List ·¿¤Ë¤·¤ÆÍøÍѤ·¤¿¤¤¾ì¹ç¤ËÍøÍѤ·¤Þ¤¹¡£

  // º£²óÂоݤȤʤë´õ¾¯Å٤Υǡ¼¥¿¤À¤±¤Î¥ê¥¹¥È¤òºîÀ®
  List<RewardData> rewardDatas = new List<RewardData>(rewardDataSO.rewardDataList.Where(x => x.rarityType == rarityType).ToList());

¡¡¾åµ­¤Î¥±¡¼¥¹¤Î¾ì¹ç¡¢Where ¥á¥½¥Ã¥É¤Ë¤è¤Ã¤Æ¾ò·ï¤Ë¹ç¤¦ RewardData ¥¯¥é¥¹(IEnumerable<T> ¤Î T ¤ÎÉôʬ)¤Î¾ðÊó¤¬Ìá¤êÃͤȤ·¤Æ¼èÆÀ¤Ç¤­¤Þ¤¹¤¬¡¢¤½¤ì¤Ï¼èÆÀ¤·¤¿¤À¤±¤Ç½èÍý¤¬½ªÎ»¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢ToList ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¼ÂÂ⽤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢List ·¿¤È¤·¤Æ¾ðÊó¤ò¼èÆÀ¤·¤Æ°·¤¦¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤½¤ì¤òº¸ÊÕ¤ËÍÑ°Õ¤·¤Æ¤¤¤ëÊÑ¿ô¤Ø¤ÈÂåÆþ½èÍý¤·¤Æ¤¤¤Þ¤¹¡£¤è¤Ã¤Æ¡¢ Where ¥á¥½¥Ã¥É¤Î¾ò·ï¼°¤Ë¤è¤Ã¤Æ¥Õ¥£¥ë¥¿¥ê¥ó¥°¤µ¤ì¤ÆÃê½Ð¤µ¤ì¤¿Ê£¿ô¤Î RewardData ¥¯¥é¥¹¤Î¾ðÊó¤¬
ToList ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤ÇºÆÅÙ List ¤È¤·¤ÆºÆÊÔ¤µ¤ì¤Æ¸ºß¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
MicroSoft
Enumerable.ToList<TSource>(IEnumerable<TSource>) ¥á¥½¥Ã¥É
https://docs.microsoft.com/ja-jp/dotnet/api/system...
Qiita @mounntainn ÍÍ
LINQ¤Ë¤Ä¤¤¤Æ¤ÎÈ÷˺Ͽ
https://qiita.com/mounntainn/items/e8b8f94a15ec4fe...


£³¡¥Sum ¥á¥½¥Ã¥É


¡¡½¸·×ÍѤΥ᥽¥Ã¥É¤Î£±¤Ä¤Ç¤¹¡£»ØÄꤷ¤¿¥³¥ì¥¯¥·¥ç¥ó¤ÎÍ×ÁǤιç·×ÃͤòÌᤷ¤Þ¤¹¡£

¡¡// ÁªÂò¤µ¤ì¤¿¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Ë¤è¤ë¡¢Ë«¾Þ¥Ç¡¼¥¿¤Î´õ¾¯Å٤ιç·×Ãͤò»»½Ð¤·¤¿¾å¤Ç¡¢¤½¤ÎÃ椫¤é¥é¥ó¥À¥à¤ÊÃͤò·èÄê
  int randomRarityValue = UnityEngine.Random.Range(0, treasureBoxDataSO.treasureBoxDataList[(int)treasureType].rewardRates.Sum());

¡¡¤³¤Á¤é¤Î¼ÂÁõ¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿ treasureType(¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î´õ¾¯ÅÙ)¤ò»ý¤Ä treasureBoxData ¥¯¥é¥¹¤Ë¤¢¤ë rewardRates ÇÛÎóÊÑ¿ô¤ÎÍ×ÁǤò¹ç·×¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¹ç·×Ãͤò Random.Range ¥á¥½¥Ã¥É¤ÎºÇÂçÃÍ(Âè2°ú¿ô)¤È¤·¤ÆÍøÍѤ·¡¢Íð¿ô¤Î¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£

¡¡¤Ê¤ª¡¢UnityEngine.Random.Range ¥á¥½¥Ã¥É¤Èµ­½Ò¤·¤Æ¤¤¤ë¤Î¤Ï¡¢Random.Range ¥á¥½¥Ã¥É¤¬ using System ¤È using UnityEngine ¤ÎξÊý¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
¥á¥½¥Ã¥É¤ÎÁ°¤Ë using Àè¤Î»ØÄ꤬¤Ê¤¤¤È¡¢¤É¤Á¤é¤Î Random.Range ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¤¤¤¤¤Î¤«¥×¥í¥°¥é¥à¤¬È½ÃǤǤ­¤Ê¤¯¤Ê¤ë¤¿¤á¤Ç¤¹¡£

¡¡System ¤Îµ­ºÜ¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢Random.Range ¤Èµ­½Ò¤¹¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£


»²¹Í¥µ¥¤¥È
MicroSoft
Enumerable.Sum ¥á¥½¥Ã¥É
https://docs.microsoft.com/ja-jp/dotnet/api/system...
Qiita @RyotaMurohoshi ÍÍ
~https://qiita.com/RyotaMurohoshi/items/d4a6750a798...
Qitta @logikuma ÍÍ
¡ÚC#¡ÛLINQÈ÷˺Ͽ2 ¡Á½¸·×ÊÔ¡Á
https://qiita.com/logikuma/items/d4f87ff4c308a7606...


£´¡¥Select ¥á¥½¥Ã¥É


¡¡¼Í±Æ½èÍý¤È¸Æ¤Ð¤ì¤ëµ¡Ç½¤Ç¤¹¡£¼Í±Æ¤È¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹ÍѤÎÀìÌçÍѸì¤Ç¡¢¥Æ¡¼¥Ö¥ë(¼Â¥Ç¡¼¥¿)¤«¤éÆÃÄê¤ÎÎó¤Î¥Ç¡¼¥¿¤Î¤ß¤ò¼è¤ê½Ð¤¹¤³¤È¤ò¸À¤¤¤Þ¤¹¡£

¡¡Select ¥á¥½¥Ã¥É¤Ç¤Ï°ú¿ô¤Ë¤·¤¿¾ò·ï¤ò¸µ¤Ë¡¢¾È¹ç¤Ç¤­¤¿¥Ç¡¼¥¿¤Î¤ß¤ò¼è¤ê½Ð¤¹Áàºî¤ò¹Ô¤¤¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤ÎÌá¤êÃÍ¤Ï IEnumerable<TResult> ¤Ç¤¢¤ê¡¢¤½¤Î¾ðÊó¤ò¼èÆÀ¤·¤ÆÍøÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¥á¥½¥Ã¥É¥Á¥§¡¼¥ó¤òÍøÍѤ·¤Æ¡¢ToList ¥á¥½¥Ã¥É¤ä ToArray ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ°·¤¨¤ë¾õÂ֤ˤ·¤Þ¤¹¡£
¤³¤ì¤Ï Where ¥á¥½¥Ã¥É¤ÈƱ¤¸½èÍý¤Î¼ê½ç¤Ë¤Ê¤ê¤Þ¤¹¡£

  // Ʊ¤¸´õ¾¯ÅÙ¤ÎË«¾Þ¤ÎÄ󶡳ä¹ç¤ÎÃͤιç·×Ãͤò»»½Ð¤·¤Æ¡¢¥é¥ó¥À¥à¤ÊÃͤò·èÄê
  int randomRewardValue = UnityEngine.Random.Range(0, rewardDatas.Select(x => x.rate).ToArray().Sum());

¡¡¤³¤Á¤é¤Î¼ÂÁõÎã¤Ç¤Ï¡¢Range ¥á¥½¥Ã¥É¤ÎÂè2°ú¿ô(ºÇÂçÃͤò»ØÄꤹ¤ë)¤ÎÉôʬ¤Ç Select ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
rewardDatas.Select(x => x.rarityRate).ToArray().Sum() ¤³¤³¤Þ¤Ç¤¬¡¢Âè2°ú¿ô¤Î½èÍý¤Ç¤¹¡£

¡¡rewardDatas ÇÛÎóÊÑ¿ô¤Î³ÆÍ×ÁǤè¤ê¡¢rarityRate ÊÑ¿ô¤Î¾ðÊó¤ò¤½¤ì¤¾¤ì¼è¤ê½Ð¤·¤Þ¤¹¡£
rewardDatas.Select(x => x.rarityRate) ¤³¤³¤Þ¤Ç¤¬ Select ¥á¥½¥Ã¥É¤Ç¤¹¡£


»²¹Í¥µ¥¤¥È
MicroSoft
Enumerable.Select ¥á¥½¥Ã¥É
https://docs.microsoft.com/ja-jp/dotnet/api/system...
.NET Column ÍÍ
¡ÚLINQ¤ÎSelect¥á¥½¥Ã¥É¤Î½ñ¤­Êý3Áª¡ÃLINQ¤Ë¤Ä¤¤¤Æ¤Ê¤É¤ò¾Ò²ð
https://www.fenet.jp/dotnet/column/language/1454/
Qiita @t_takahari ÍÍ
LINQ¤Î¤½¤ÎForEach¡¢¼Â¤ÏSelect¤Ç½ñ¤­´¹¤¨¤é¤ì¤ë¤«¤â
https://qiita.com/t_takahari/items/6dc72f48b1ebdfe...


£µ¡¥ToArray ¥á¥½¥Ã¥É


¡¡IEnumerable<T> ¤«¤éÇÛÎó¤òºîÀ®¤·¤Þ¤¹¡£

¡¡IEnumerable<T> ¤Ï Linq ¤Î½èÍý¤ò¼Â¹Ô¤·¤¿ºÝ¤ÎÌá¤êÃͤξðÊó¤Ç¤¹¡£Î㤨¤Ð¡¢¥Õ¥£¥ë¥¿¥ê¥ó¥°¤·¤Æ»»½Ð¤µ¤ì¤¿·ë²Ì¤ò ÇÛÎ󷿤ˤ·¤ÆÍøÍѤ·¤¿¤¤¾ì¹ç¤ËÍøÍѤ·¤Þ¤¹¡£

  // Ʊ¤¸´õ¾¯ÅÙ¤ÎË«¾Þ¤ÎÄ󶡳ä¹ç¤ÎÃͤιç·×Ãͤò»»½Ð¤·¤Æ¡¢¥é¥ó¥À¥à¤ÊÃͤò·èÄê
  int randomRewardValue = UnityEngine.Random.Range(0, rewardDatas.Select(x => x.rarityRate).ToArray().Sum());
¡¡
¡¡Select ¥á¥½¥Ã¥É¤Ë¤è¤Ã¤ÆÃê½Ð¤µ¤ì¤¿¾ðÊó¤òÇÛÎó¤Ë¤·¤Æ¤¤¤Þ¤¹¡£¤½¤·¤Æ¤½¤Î¸å¤Ë Sum ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢
ÇÛÎó¤ÎÍ×ÁǤò¤¹¤Ù¤Æ¹ç·×¤·¤¿Ãͤò»»½Ð¤·¡¢¤½¤ì¤ò Range ¥á¥½¥Ã¥É¤ÎºÇÂçÃͤȤ·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£

¡ãÂè2°ú¿ô¤Î²òÀâ¡ä
  // Ʊ¤¸´õ¾¯ÅÙ¤ÎË«¾Þ¤ÎÄ󶡳ä¹ç¤ÎÃͤιç·×Ãͤò»»½Ð¤·¤Æ¡¢¥é¥ó¥À¥à¤ÊÃͤò·èÄê
  int randomRewardValue = UnityEngine.Random.Range(0, [ ÇÛÎó¤Ç¤¢¤ë rewardDatas ¥¯¥é¥¹¤Î»ý¤Ä³Æ rarityRate ÊÑ¿ô¤ÎÃͤΤ߼è¤ê½Ð¤·¤Æ¤½¤ì¤òÇÛÎó¤Ë¤·¡¢¤½¤ÎÇÛÎó¤ÎÍ×ÁǤÎÃͤιç·×ÃÍ ]);


»²¹Í¥µ¥¤¥È
MicroSoft
Enumerable.ToArray<TSource>(IEnumerable<TSource>) ¥á¥½¥Ã¥É
https://docs.microsoft.com/ja-jp/dotnet/api/system...
Qiita @Marimoiro ÍÍ
LINQ¥Á¡¼¥È¥·¡¼¥ÈŪ¤Ê¤â¤Î
https://qiita.com/Marimoiro/items/0e119b47d65bf138...


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

£±¡¥¥Ç¥Ð¥Ã¥°¤ò¹Ô¤¦


¡¡Debug.Log ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¡¢Ë«¾Þ¤¬¥é¥ó¥À¥à¤ËÃêÁª¤µ¤ì¤ë¤«¡¢³Îǧ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡¼Â¹Ô»þ¤Ë¥¨¥é¡¼¤¬½Ð¤ë¾ì¹ç¡¢¤¤¤¯¤Ä¤«¤Î¸¶°ø¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£


¡ã¼ç¤Ê¥¨¥é¡¼¤Î¸¶°ø¡ä
  £±¡¥¤É¤Á¤é¤«¤Î¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¢¥µ¥¤¥ó¤¬½ÐÍè¤Æ¤¤¤Ê¤¤

  £²¡¥TreasureBoxDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î Size ¤¬ 0¡¢¤¢¤ë¤¤¤Ï Size ¤ò 1 °Ê¾å¤ËÀßÄꤷ¤Æ¤¤¤ë¤¬¡¢Element ¤ÎÆâÍƤ¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤

¡¡¤Ê¤É¤Ç¤¹¡£¤Þ¤¿¡¢RewardData SO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î Size ¤¬ 0 ¤Î¤Þ¤Þ¤Î¾ì¹ç¡¢¥¨¥é¡¼¤Ï½Ð¤Þ¤»¤ó¤¬¡¢ÃêÁª½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤»¤ó¡£

¡¡½èÍý¤ÎÆâÍƤòÆɤßľ¤·¤Æ¤«¤é¡¢¥¨¥é¡¼¤ÎÆÃÄê¤Ë¥Á¥ã¥ì¥ó¥¸¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


¡ã¥¨¥é¡¼£±¤Î¥±¡¼¥¹¤Î¤È¤­¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¡ä




¡ã¥¨¥é¡¼£²¤Î¥±¡¼¥¹¤Î¤È¤­¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¡ä



¡¡¤³¤ì¤é¤Ï°Åµ­¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÆɤ߲ò¤¤¤Æ¡¢¤É¤³¤ËÌäÂ꤬¤¢¤ë¤Î¤«¡¢¼«Ê¬1¿Í¤Ç¤âÄɵڤ¹¤ë¤¿¤á¤Î¥¹¥­¥ë¤ò¿È¤Ë¤Ä¤±¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£



¡¡RewardManager ¤Î debugTreasureType ÊÑ¿ô¤ËÀßÄꤷ¤Æ¤¤¤ë¥ì¥¢¥ê¥Æ¥£¤ÇÃêÁª½èÍý¤¬¹Ô¤ï¤ì¤Æ¡¢Ë«¾Þ¥Ç¡¼¥¿¤¬ÇӽФµ¤ì¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ÎÀßÄê¤È Console ¥Ó¥å¡¼¤Ëɽ¼¨¤µ¤ì¤ë¾ðÊó¤ò¸«¤Æ¡¢½èÍý¤Îή¤ì¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¥È¥ì¥¸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î´õ¾¯ÅÙ(debugTreasureType ÊÑ¿ô ¤Î TreasureType)¤òÊѹ¹¤·¡¢²¿²ó¤â»î¤·¤Æ¡¢¤É¤Î¤è¤¦¤Ê½èÍý¤¬¹Ô¤ï¤ì¤Æ¤ë¤Î¤«¤ò¤·¤Ã¤«¤ê¤ÈÇÄ°®¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£


¡ã¥Ç¥Ð¥Ã¥°ÍѤΥȥ쥸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î´õ¾¯ÅÙ¤¬ Bronze ¤Î¾ì¹ç¡ä



¡ã¥Ç¥Ð¥Ã¥°ÍѤΥȥ쥸¥ã¡¼¥Ü¥Ã¥¯¥¹¤Î´õ¾¯ÅÙ¤¬ Silver ¤Î¾ì¹ç¡ä




£²¡¥³èÍÑÊýË¡


¡¡¤³¤ÎÃêÁª½èÍý¤Ï¥²¡¼¥àÆâ¤ÎÍÍ¡¹¤ÊÉôʬ¤Ë±þÍѤǤ­¤Þ¤¹¡£

¡¡¸½ºß¤Ï¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ë¤Æ¥Ç¥Ð¥Ã¥°ÍѤΠTreasureType ¤òÀßÄꤷ¤Æ¤¤¤Þ¤¹¤¬¡¢
¤³¤ÎÉôʬ¤òÊ̤ÎÊÑ¿ô¤«¤é»²¾È¡¢¤¢¤ë¤¤¤ÏÍð¿ô²½¤¹¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢¥²¡¼¥àÆâ¤Î½èÍý¤Ë³èÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¥¬¥Á¥ã¤À¤±¤Ç¤Ï¤Ê¤¯¡¢Î㤨¤Ð¡¢ TreasureBox ¤Î¥ì¥¢¥ê¥Æ¥£¤ÎÉôʬ¤ò¥é¥ó¥À¥à²½¤¹¤ì¤Ð¡¢ÊüÃÖ·Ï¥²¡¼¥à¤Î»þ´ÖÊ󽷤˳èÍѽÐÍè¤Þ¤¹¡£

¡¡¿§¡¹¤Ê³ÑÅÙ¤«¤é½èÍý¤ò¹Í¤¨¤Æ¡¢¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤ËÈ¿±Ç¤µ¤»¤Æ¤¤¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£



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

¡¡¤ªÈè¤ìÍͤǤ·¤¿¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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