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

¡¡Ê£¿ô²ó¤Î¼ê½ç¤Ëʬ¤±¤Æ¡¢¤ª»È¤¤¤ÎÀ®²Ì¤È¤·¤ÆË«¾Þ¤ò³ÍÆÀ¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

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


¡ã¼ÂÁõÆ°²è­¡¡¡¤ª»È¤¤¤ÎÆñ°×ÅÙ(JobType)¤¬ Common ¤Î¾ì¹ç¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡ã¼ÂÁõÆ°²è­¢¡¡¤ª»È¤¤¤ÎÆñ°×ÅÙ(JobType)¤¬ Normal ¤Î¾ì¹ç¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯




¼ê½ç£±£¹¡¡¡Ý¤ª»È¤¤¤ÎÆñ°×Å٤˱þ¤¸¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤ò¥é¥ó¥À¥à¤ÇÃê½Ð¤¹¤ëµ¡Ç½¤Î¼ÂÁõ¡Ý
£³£±¡¥¤ª»È¤¤¤ÎÆñ°×ÅÙ¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÅÐÏ¿¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¤Î½àÈ÷¤ò¹Ô¤¦¡¡¡ÝJobTypeRewardRatesData ¥¹¥¯¥ê¥×¥È¤È JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¡¼
£³£²¡¥JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤Æ JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢¥Ç¡¼¥¿¤òÅÐÏ¿¤¹¤ë
£³£³¡¥GameManager ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢£²¤Ä¤Î¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò±¿ÍѤ·¤Æ¡¢¤ª»È¤¤¤ÎÆñ°×Å٤˱þ¤¸¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤ò¥é¥ó¥À¥à¤ÇÃê½Ð¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤¹¤ë



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

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



£³£±¡¥¤ª»È¤¤¤ÎÆñ°×ÅÙ¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÅÐÏ¿¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¤Î½àÈ÷¤ò¹Ô¤¦¡¡¡ÝJobTypeRewardRatesData ¥¹¥¯¥ê¥×¥È¤È JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¡¼

£±¡¥Àß·×


¡¡¤ª»È¤¤¤¬´°Î»¤·¤¿ºÝ¤ËÀ¸À®¤µ¤ì¤ë¥­¥ã¥é¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¿¥Ã¥×¤¹¤ë¤È¡¢º£²ó¤Î¤ª»È¤¤¤ÎÀ®²Ì¤È¤·¤ÆË«¾Þ¤ò³ÍÆÀ¤Ç¤­¤ë¥·¥¹¥Æ¥à¤òÀ߷פ·¤Æ¼ÂÁõ¤·¤Þ¤¹¡£
º£²ó¤Ï¤ª»È¤¤¤ÎÆñ°×Å٤˱þ¤¸¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤ò¥é¥ó¥À¥à¤ÇÃê½Ð¤¹¤ëµ¡Ç½¤ÎÀ߷פȼÂÁõ¤ò¹Ô¤Ã¤Æ¤¤¤­¤Þ¤¹¡£

¡ãË«¾Þ³ÍÆÀ¤Þ¤Ç¤Î¼ê½ç¡ä
¡¡¡»³ÍÆÀ¤·¤¿Ë«¾Þ¤Î¾ðÊó¤òɽ¼¨¤·¤Æ¥×¥ì¥¤¥ä¡¼¤ËÅÁ¤¨¤ë¤¿¤á¤ÎË«¾Þɽ¼¨Íѥݥåץ¢¥Ã¥×¡¦¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¡¢¤½¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ©¸æ¤¹¤ë¥¹¥¯¥ê¥×¥È
¡¡¡»¥­¥ã¥é¤ò¥¿¥Ã¥×¤·¤¿ºÝ¤Ë¡¢Ë«¾Þɽ¼¨ÍѤΥݥåץ¢¥Ã¥×¡¦¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤¹¤ë½èÍý
¡¡¡»Ë«¾Þ¤ÎÆâÍƤòÅÐÏ¿¤¹¤ë¤¿¤á¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®(º£²ó¤Î¼ê½ç¤ÇºîÀ®)
¡¡¢¡¤ª»È¤¤¤ÎÆñ°×Å٤˱þ¤¸¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤ò¥é¥ó¥À¥à¤ÇÃê½Ð¤¹¤ëµ¡Ç½
¡¡¡¦Ë«¾Þɽ¼¨Íѥݥåץ¢¥Ã¥×¡¦¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢¥é¥ó¥À¥à¤ÇÃê½Ð¤µ¤ì¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤òÁ÷¤ê¹þ¤ó¤Çɽ¼¨¤µ¤»¤ëµ¡Ç½
¡¡¡¦¥»¡¼¥Ö¤·¤Æ¤¢¤ë¤ª»È¤¤¤Î¥Ç¡¼¥¿¤È¡¢ OfflineTimeManager ¥¹¥¯¥ê¥×¥È¤Î List Æ⤫¤éºï½ü¤¹¤ëµ¡Ç½


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


¡¡¤ª»È¤¤¤ÎÆñ°×Å٤ˤè¤ëË«¾Þ¤Î´õ¾¯ÅÙ¤´¤È¤Î½Ð¸½Î¨(Ä󶡳ä¹ç)¥Ç¡¼¥¿¤òÅÐÏ¿¤¹¤ë¤¿¤á¤ÎÊÑ¿ô·²¤ò«¤Í¤ë¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¥¯¥é¥¹¤â MonoBehaviour ¥¯¥é¥¹¤Î·Ñ¾µ¤¬¤Ê¤¤¥¯¥é¥¹¤Ç¤¹¤Î¤Ç¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¥¢¥¿¥Ã¥Á¤Ç¤­¤Þ¤»¤ó¡£
¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¥¤¥ó¥¹¥¿¥ó¥¹¤ò¹Ô¤Ã¤ÆÍøÍѤ·¤Æ¤¤¤¯¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£


JobTypeRewardRatesData.cs

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


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


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


¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¤ËɬÍ×¤Ê JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Þ¤¹¡£
¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÀìÍѤΠScriptableObject ¥¯¥é¥¹¤ò·Ñ¾µ¤·¡¢[CreateAssetMenu] °À­¤òµ­½Ò¤¹¤ë¤³¤È¤ÇºîÀ®²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¡¢List ¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢»ØÄꤷ¤¿¥Ç¡¼¥¿¤òÊ£¿ô¤Î¥Ç¡¼¥¿¤È¤·¤Æ¤Þ¤È¤á¤Æ´ÉÍý¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤Æ¤ÎÌò³ä¤ò²Ì¤¿¤¹¤³¤È¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡º£²ó»ØÄꤷ¤Æ´ÉÍý¤·¤¿¤¤¥Ç¡¼¥¿¤Ï¤ª»È¤¤¤ÎÆñ°×Å٤ˤè¤ë´õ¾¯ÅÙ¤´¤È¤Î½Ð¸½Î¨¤Î¥Ç¡¼¥¿¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢JobTypeRewardRatesData ·¿¤Î List ¤òºîÀ®¤·¤Æ¡¢´ÉÍý¤ò¹Ô¤¨¤ë¾õÂ֤Ȥ·¤ÆºîÀ®¤ò¹Ô¤¤¤Þ¤¹¡£



JobTypeRewardRatesDataSO.cs

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


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


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

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


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

¡¡Project ¥Õ¥©¥ë¥ÀÆâ¤Î Datas ¥Õ¥©¥ë¥À¤Ë¤Æ Unity ¤Îº¸¾å¤Î¥á¥Ë¥å¡¼¤è¤ê¡¢Assets => Create => Create JobTypeRewardRatesDataSO ¤òÁªÂò¤·¤Þ¤¹¡£
¿·¤·¤¯ JobTypeRewardRatesDataSO ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£Ì¾Á°¤Ï¤½¤Î¤Þ¤Þ¤Ç¹½¤¤¤Þ¤»¤ó¡£

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


¡ã¥Õ¥©¥ë¥À´ÉÍý¡ä



£²¡¥JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦


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

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



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

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

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



¡¡²¼µ­¤Î²èÁü¤Î¤è¤¦¤ËÀßÄê¤ò¹Ô¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
jobType ÊÑ¿ô¤Ë¤Ï°Û¤Ê¤ë¼ïÎà¤òÅÐÏ¿¤·¡¢rewardRates ÇÛÎóÊÑ¿ô¤Ï Size ¤ò 3 ¤ËÀßÄꤷ¤Æ¡¢´õ¾¯ÅÙ¤´¤È¤ÎÄ󶡳ä¹ç¤òÅÐÏ¿¤·¤Þ¤¹¡£
¤³¤Î rewardRates ÇÛÎóÊÑ¿ô¤Î¹ç·×ÃÍ¤Ï 100 ¤Ë¤Ê¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç³ÎΨ¤È¤·¤Æ°·¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£


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



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


£³£³¡¥GameManager ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢£²¤Ä¤Î¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò±¿ÍѤ·¤Æ¡¢¤ª»È¤¤¤ÎÆñ°×Å٤˱þ¤¸¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤ò¥é¥ó¥À¥à¤ÇÃê½Ð¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤¹¤ë

£±¡¥Àß·×


¡¡¿·¤·¤¯ÃêÁª½èÍý¤ò¹Ô¤¦¥á¥½¥Ã¥É¤òÄɲä·¡¢¥­¥ã¥é¤ò¥¿¥Ã¥×¤·¤¿¸å¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë ResultJobs ¥á¥½¥Ã¥ÉÆâ¤Î TODO ¤Ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£

¡¡ÃêÁª½èÍý¤Î¥á¥½¥Ã¥É¤ÏÈó¾ï¤ËÊ£»¨¤Ê½èÍý¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤ÈÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£



¡¡¤Þ¤º¤Ï¤ª»È¤¤¤ËÀßÄꤵ¤ì¤Æ¤¤¤ëÆñ°×ÅÙ(JobType)¤ò¸µ¤Ë¤·¤Æ¡¢JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¡¢¤½¤ÎÆñ°×Å٤ˤª¤±¤ë´õ¾¯ÅÙ¤ÎÄ󶡳ä¹ç¤ò¾È¹ç¤·¤Æ¥Ç¡¼¥¿¤ò¼èÆÀ¤·¤Þ¤¹¡£
Î㤨¤Ð¡¢Æñ°×ÅÙ¤¬ Easy ¤Ç¤¢¤ë¾ì¹ç¡¢JobTypeRewardRatesDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î Element 0 ¤¬¾È¹ç¤·¤Æ³ºÅö¤·¤Þ¤¹¤Î¤Ç¡¢
¤½¤ÎÇÛÎó¤ÎÃͤò´õ¾¯Å٤Ȥ·¤ÆÍøÍѤ·¡¢¤½¤ì¤¾¤ì¡¢Common ¤ÎÄ󶡳ä¹ç¡¢Normal ¤ÎÄ󶡳ä¹ç¡¢Rare ¤ÎÄ󶡳ä¹ç¤È¤·¤Æ½àÈ÷¤·¤Þ¤¹¡£

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

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

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

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

¡¡¤³¤³¤ÇË«¾Þ¤ò·èÄꤹ¤ë¤³¤È¤Ç¡¢¼¡¤Î¼ê½ç¤ÇË«¾Þɽ¼¨ÍѤΥݥåץ¢¥Ã¥×¤Ë¡¢¾ðÊó¤òÁ÷¤ê¤³¤à¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


£²¡¥GameManager ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë


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

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

¡¡ÃêÁª½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢TODO µ¡Ç½¤ÎÉôʬ¤Ë½èÍý¤ò¼ÂÁõ¤·¤Æ¤¤¤­¤Þ¤¹¡£


GameManager.cs

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


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


£³¡¥¡ã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.rewardDatasList.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.rewardDatasList.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, JobTypeRewardRatesDataSO.jobTypeRewardRatesDataList[(int)jobType].rewardRates.Sum());

¡¡¤³¤Á¤é¤Î¼ÂÁõ¤Ç¤Ï¡¢»ØÄꤵ¤ì¤¿ jobType(¤ª»È¤¤¤ÎÆñ°×ÅÙ)¤ò»ý¤Ä JobTypeRewardRatesData ¥¯¥é¥¹¤Ë¤¢¤ë rewardRates ÇÛÎóÊÑ¿ô¤ÎÍ×ÁǤò¹ç·×¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤ÎÃͤò UnityEngine.Random.Range ¥á¥½¥Ã¥É¤ÎºÇÂçÃͤȤ·¤ÆÍøÍѤ·¡¢Íð¿ô¤Î¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£

¡¡UnityEngine.Random.Range ¥á¥½¥Ã¥É¤Èµ­½Ò¤·¤Æ¤¤¤ë¤Î¤Ï¡¢Random.Range ¥á¥½¥Ã¥É¤¬ using System ¤È using UnityEngine ¤ÎξÊý¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
¥á¥½¥Ã¥É¤ÎÁ°¤Ë using Àè¤Î»ØÄ꤬¤Ê¤¤¤È¡¢¤É¤Á¤é¤Î 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.rarityRate).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 ¥á¥½¥Ã¥É¤ÎºÇÂçÃͤȤ·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£

  // Ʊ¤¸´õ¾¯Å٤ιç·×Ãͤò»»½Ð¤·¤Æ¡¢¥é¥ó¥À¥à¤ÊÃͤòÃê½Ð
  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 ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¡¢Ë«¾Þ¤¬¥é¥ó¥À¥à¤ËÃêÁª¤µ¤ì¤ë¤«¡¢³Îǧ¤ò¹Ô¤¤¤Þ¤¹¡£
¤ª»È¤¤¤ÎÆñ°×ÅÙ(JobType)¤òÊѹ¹¤·¡¢²¿²ó¤â»î¤·¤Æ¡¢¤É¤Î¤è¤¦¤Ê½èÍý¤¬¹Ô¤ï¤ì¤Æ¤ë¤Î¤«¤ò¤·¤Ã¤«¤ê¤ÈÇÄ°®¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£


¡ã¼ÂÁõÆ°²è­¡¡¡¤ª»È¤¤¤ÎÆñ°×ÅÙ(JobType)¤¬ Common ¤Î¾ì¹ç¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡ã¼ÂÁõÆ°²è­¢¡¡¤ª»È¤¤¤ÎÆñ°×ÅÙ(JobType)¤¬ Normal ¤Î¾ì¹ç¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯




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

¡¡¼¡¤Ï¡¡¼ê½ç£²£°¡¡¡¼¥é¥ó¥À¥à¤ÇÃê½Ð¤·¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤òË«¾Þɽ¼¨¥Ý¥Ã¥×¥¢¥Ã¥×¤ËÈ¿±Ç¤¹¤ë½èÍý¤Î¼ÂÁõ¡¼¡¡¤Ç¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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