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

¡¡¤³¤³¤«¤é¤ÏÃæµé¼Ô¸þ¤±¤Î¶µºà¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡ÊüÃÖ¥²¡¼¥à¤Î¶µºà¤ò¥Ù¡¼¥¹¤Ë½èÍý¤ÎȯŸ¡¦±þÍѤò¹Ô¤Ã¤Æ¤¤¤­¤Þ¤¹¡£
Æñ¤·¤¤¤È´¶¤¸¤¿¤é°ìö½ªÎ»¤·¤Æ¡¢Éü½¬¤ò¤·¤Ã¤«¤ê¤È¹Ô¤Ã¤Æ¤«¤é¿Ê¤á¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£

¡¡¶µºà¤ò¿Ê¤á¤ë¤³¤È¤¬ÌÜŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¶µºà¤òÄ̤¸¤Æ³Ø½¬¤·¡¢Íý²ò¤ò¿¼¤á¡¢¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤¬ÌÜŪ¤Ç¤¹¡£
¥¨¥é¡¼¤ò½Ð¤Ê¤¤¤è¤¦¤Ë¿Ê¤á¤ì¤Ð¶µºà¤ò½ªÎ»¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¤¬¡¢¤½¤ì¤Ç¤ÏÃμ±¤äµ»½Ñ¤ÏÈ÷¤ï¤ê¤Þ¤»¤ó¡£
¤ï¤«¤Ã¤¿¤Ä¤â¤ê¤Ç¤ÏÀ衹¤Ë¼«Ê¬¤Ò¤È¤ê¤Ç½èÍý¤ò¹Í¤¨¤ëºÝ¤ËµÍ¤Þ¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¤Î¤Ç¡¢À§Èó¡¢¼«Ê¬¤ÎÎϤòÍܤ¦¤¿¤á¤Î¥Ä¡¼¥ë¤È¤·¤Æ¾å¼ê¤Ë³èÍѤò¤·¤Æ¤¯¤À¤µ¤¤¡£

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

ȯŸ£±¡¡¡ÝUniRX (ReactivePropery)¤òÍøÍѤ·¤¿ UI ɽ¼¨¹¹¿·µ¡Ç½¤Î¼ÂÁõ¡Ý
£±¡¥»öÁ°½àÈ÷¤È UniRX ¤Î¥¤¥ó¥Ý¡¼¥È
£²¡¥UniRX ¤È¤Ï¡©
£³¡¥UI ɽ¼¨¤Î¹¹¿·½èÍý¤ò UniRX ¤Îµ¡Ç½¤Ç¤¢¤ë ReactivePropery ¤òÍøÍѤ·¤¿½èÍý¤ËÊѹ¹¤¹¤ë



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

¡¡¡¦ReactivePropery<T>



£±¡¥»öÁ°½àÈ÷¤È UniRX ¤Î¥¤¥ó¥Ý¡¼¥È

£±¡¥»öÁ°½àÈ÷


¡¡¤Þ¤º¤Ï¥²¡¼¥à²èÌ̤˳ÍÆÀ¤·¤Æ¤¤¤ë¥Ý¥¤¥ó¥È(GameData ¥¯¥é¥¹¤Î totalRewardPoint ÊÑ¿ô)¤òɽ¼¨¤µ¤»¤ë UI µ¡Ç½¤È¡¢
¥Ý¥¤¥ó¥È¤ò³ÍÆÀ¤¹¤ë¤´¤È¤Ë²èÌ̤Υݥ¤¥ó¥Èɽ¼¨¤¬¹¹¿·¤µ¤ì¤ë½èÍý¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¥¹¥¯¥ê¥×¥È¤Ê¤É¤ÎÀ߷פÏǤ°Õ¤Ç¤¹¡£

¡¡¤½¤Á¤é¤ò²þ½¤¤·¤Æ³Ø½¬¤ò¿Ê¤á¤Æ¤¤¤¯¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï¤³¤Á¤é¤ÎÀ½ºî¤ò¤·¤Æ¤¯¤À¤µ¤¤¡£


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



£²¡¥UniRX ¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë


¡¡º£²ó¤Ï¥Ý¥¤¥ó¥ÈÍѤΠUI ɽ¼¨¤Î¹¹¿·¤Ë UniRX(¥æ¥Ë¥¢¡¼¥ë¥¨¥Ã¥¯¥¹)¤È¤¤¤¦Ìµ½þ¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ·¤Þ¤¹¡£

¡¡Unity ¤Î¥¢¥»¥Ã¥È¥¹¥È¥¢¤Î¸¡º÷¤Ë¤Æ UniRX ¤ÈÆþÎϤ¹¤ë¤È¸¡º÷·ë²Ì¤È¤·¤Æɽ¼¨¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ Unity ¤Ë¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹¡£
¤¢¤ë¤¤¤Ï²¼µ­¤Î¥ê¥ó¥¯¤«¤éľÀÜ»²¾È¤â½ÐÍè¤Þ¤¹¡£
UniRX
https://assetstore.unity.com/packages/tools/integr...


¥¢¥»¥Ã¥È¥¹¥È¥¢




£²¡¥UniRX ¤È¤Ï¡©

£±¡¥UniRX


¡¡UniRX ¤È¤Ï¥ê¥¢¥¯¥Æ¥£¥Ö¥×¥í¥°¥é¥ß¥ó¥°¤È¤¤¤¦¹Í¤¨Êý¤ò Unity ¤ÇÍøÍѤǤ­¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤Ç¤¹¡£
ÈóƱ´ü½èÍý¤È¥¤¥Ù¥ó¥È½èÍý¤ËÂФ·¤Æ¸úΨŪ¤Ê¼ÂÁõÊýË¡¤òÄ󶡤¹¤ë¹½Â¤¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡ÊØÍø¤«¤Ä¡¢¹âÅ٤ʽèÍý¤ò¼Â¸½¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢³Ø½¬¥³¥¹¥È¤âÈó¾ï¤Ë¹â¤¤¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿³Ø½¬¤·¤¿¤«¤é¤È¤¤¤Ã¤Æ¡¢¤Ê¤ó¤Ç¤â¤³¤Î¹½Â¤¤Ë¤¹¤ì¤Ð¤¤¤¤¡¢¤È¤¤¤¦¤â¤Î¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£

¡¡º£²ó¤Ï¤½¤ÎÃæ¤Ç¤âÈæ³ÓŪ°·¤¤¤ä¤¹¤¯¡¢ÍøÍѤ¹¤ëµ¡²ñ¤Î¿¤¤ ReactivePropery(¥ê¥¢¥¯¥Æ¥£¥Ö¥×¥í¥Ñ¥Æ¥£)¤È¤¤¤¦µ¡Ç½¤Ë¤Ä¤¤¤Æ¡¢
¿ô²ó¤Ëʬ¤±¤Æ¼ÂÁõ¤ò¹Ô¤¤¤Ê¤¬¤é³Ø½¬¤ò¹Ô¤Ã¤Æ¤¤¤­¤Þ¤¹¡£

¡¡C# ¤Î´ðÁäÀ¤±¤Ç¤Ï¤Ê¤¯¡¢Linq¡¢¥é¥à¥À¼°(¤ª¤è¤Ó¡¢¥á¥½¥Ã¥É¥Á¥§¡¼¥ó)¤È¤¤¤Ã¤¿µ¡Ç½¤âÍý²ò¤·¤Æ¤¤¤Ê¤¤¤È°·¤¦¤³¤È¤¬Æñ¤·¤¤¤¿¤á¡¢
¤³¤ì¤é¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¤Þ¤ÀÍý²ò¤¬ÉÔ½½Ê¬¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Á¤é¤ò³Ø½¬¤·¤Æ¤«¤é¿Ê¤á¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤¹¤Ç¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ëµ¡Ç½¤ò ReactivePropery ¤òÍøÍѤ·¤¿Àß·×ÆâÍƤ˥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¦ÆâÍƤˤʤäƤ¤¤Þ¤¹¤Î¤Ç¡¢
¸½ºß¤ÎÊüÃÖ¥²¡¼¥à¤Î¥¹¥¯¥ê¥×¥È¤Î½èÍý¤ÎÆâÍƤò¤·¤Ã¤«¤êÇÄ°®¤Ç¤­¤Æ¤¤¤Ê¤¤¤È¡¢¤É¤³¤ò¤É¤Î¤è¤¦¤Ë½¤Àµ¤·¤Æ¤¤¤ë¤Î¤«¤âÆñ¤·¤¤ÆâÍƤǤ¹¡£

¡¡UniRX ¤ª¤è¤Ó ReactivePropery ¤Ë¤Ä¤¤¤Æ¤Ïµ­»ö¤â¿¤¤¤Ç¤¹¤·¡¢»²¹Í¤È¤Ê¤ë½ñÀҤ⤢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤â¹ç¤ï¤»¤Æ³Ø½¬¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£


£²¡¥¥ª¥Ö¥¶¡¼¥Ð¡¼¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤¿Àß·×


¡¡UniRX ¤Ï¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î£±¤Ä¤Ç¤¢¤ë¡¢¥ª¥Ö¥¶¡¼¥Ð¡¼¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤È¤¤¤¦¤â¤Î¤ÇÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£

¡¡¶ñÂÎŪ¤Ë¤Ï¡¢¥¤¥Ù¥ó¥È(¥Ü¥¿¥ó¤Ê¤É)¤ò¼Â¹Ô¤·¤¿ºÝ¤Î½èÍý¤ò¡¢ÄÌÃΤ¹¤ë¦¡¢ÄÌÃΤò¼õ¤±¼è¤ë¦¡¢¤È¤¤¤¦³µÇ°¤òÍøÍѤ·¤Æ¼ÂÁõ¤ò¹Ô¤¦À߷פˤʤê¤Þ¤¹¡£

¡¡°Ê²¼¤Îµ­»ö¤ÏÈó¾ï¤Ë¤ï¤«¤ê¤ä¤¹¤¯¤Þ¤È¤á¤é¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤Á¤é¤òÆɤ߹þ¤ó¤Ç¡¢Íý²ò¤ò¿¼¤á¤Æ¤¯¤À¤µ¤¤¡£
Qiita @toRisouP ÍÍ
UniRxÆþÌç ¤½¤Î1
https://qiita.com/toRisouP/items/2f1643e344c741dd9...



¡¡¤Ç¤Ïº£²ó¤Î¼ÂÁõÊýË¡¤Ï¡¢¤É¤Î¤è¤¦¤ËÍøÍѤ·¤Æ¤¤¤¯¤Î¤«¡¢¤É¤ó¤ÊÉôʬ¤ËÍøÅÀ¤¬¤¢¤ë¤Î¤«¤òÀâÌÀ¤·¤Þ¤¹¡£

¡¡¸½ºß¡¢³ÍÆÀ¤·¤¿Ë«¾Þ¤Î¥Ý¥¤¥ó¥È¤ò¥²¡¼¥à²èÌ̤ËÇÛÃÖ¤·¤¿ UI ɽ¼¨¤ò¹¹¿·¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ê¼ê½ç¤Î½èÍý¤Ç¼ÂÁõ¤·¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£

¡¡£±¡¥GameManager ¥¯¥é¥¹¤¬¤ª»È¤¤Ã£À®»þ¤ÎË«¾Þ¥Ý¥¤¥ó¥È¤ò GameData ¥¯¥é¥¹¤Î totalRewardPoint ÊÑ¿ô¤Ë²Ã»»¤¹¤ë½èÍý¤ò¼Â¹Ô¤¹¤ë
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢­
¡¡£²¡¥totalRewardPoint ÊÑ¿ô¤ò¥²¡¼¥à²èÌ̤Ëɽ¼¨¤·¤Æ¤¤¤ë Text ¥¯¥é¥¹¤ËÂФ·¤ÆÌ¿Îá¤ò½Ð¤·¤Æ¡¢¥²¡¼¥à²èÌ̤Îɽ¼¨¤ò¹¹¿·¤¹¤ë

¡¡¤³¤Î¤¦¤Á¡¢£²¤Î½èÍý¤ò¥¯¥é¥¹´Ö¤Ç¤Î½èÍýÆâÍƤËÃÖ¤­´¹¤¨¤Þ¤·¤ç¤¦¡£

¡¡£²¡Ý£±¡¥GameManager ¥¯¥é¥¹¡¡(totalRewardPoint ÊÑ¿ô¤ò¥²¡¼¥à²èÌ̤Ëɽ¼¨¤·¤Æ¤¤¤ë Text ¥¯¥é¥¹¤ËÂФ·¤ÆÌ¿Îá¤ò½Ð¤·¤Æ)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢­
¡¡£²¡¼£²¡¥Text ¥¯¥é¥¹¡¢¤¢¤ë¤¤¤Ï¡¢Text ¥¯¥é¥¹¤ò´ÉÍý¤·¤Æ¤¤¤ë UIManger ¤Î¤è¤¦¤Ê´ÉÍý¥¯¥é¥¹¡¡¡¡(¥²¡¼¥à²èÌ̤Îɽ¼¨¤ò¹¹¿·¤¹¤ë)

¡¡°Ê¾å¤Î¤³¤È¤è¤ê¡¢GameManager ¥¯¥é¥¹¤¬ UI ´ÉÍýÍѤΥ¯¥é¥¹¤È°Í¸´Ø·¸¤ò·ë¤ó¤Ç¡¢¤½¤Î¾ðÊó¤òÍøÍѤ·¤Æ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ëή¤ì¤Ç¤¹¡£

¡¡¥ª¥Ö¥¶¡¼¥Ð¡¼¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤¿¾ì¹ç¡¢½èÍý¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡£±¡¥GameManager ¥¯¥é¥¹¤¬¤ª»È¤¤Ã£À®»þ¤ÎË«¾Þ¥Ý¥¤¥ó¥È¤ò GameData ¥¯¥é¥¹¤Î totalRewardPoint ÊÑ¿ô¤ÎÂå¤ï¤ê¤Ë ReactivePropery ¤ËÃͤò²Ã»»¤¹¤ë½èÍý¤ò¼Â¹Ô¤¹¤ë(½èÍý¤Îή¤ì¤ÏƱ¤¸)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢­
¡¡£²¡¥ReactivePropery ¤ÎÃͤò UI ´ÉÍýÍѤΥ¯¥é¥¹¤¬´Æ»ë¤·¤Æ¤¤¤Æ¡¢ReactivePropery ¤ÎÃͤ¬¹¹¿·¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢Text ¥¯¥é¥¹¤ËÂФ·¤Æ¼«Æ°Åª¤ËÌ¿Îá¤ò½Ð¤·¤Æ¡¢¥²¡¼¥à²èÌ̤Îɽ¼¨¤ò¹¹¿·¤¹¤ë(°ã¤¦Éôʬ)

¡¡Â礭¤¯°Û¤Ê¤ë¤Î¤Ï¡¢£²¤ÎÉôʬ¤Ç¤¹¡£

¡¡ReactivePropery ¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¤³¤ÎÃͤò³°Éô¥¯¥é¥¹(UI ´ÉÍý¥¯¥é¥¹)¤«¤é´Æ»ë¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
¤³¤Î½èÍý¤Ë¤è¤ê¡¢°ÊÁ°¤Î¤è¤¦¤Ë¡¢Ãͤ¬¹¹¿·¤µ¤ì¤ë¤¿¤Ó¤Ë¡¢GameManager ¥¯¥é¥¹¤«¤éɽ¼¨¹¹¿·¤ÎÌ¿Îá¤ò¼õ¤±¤ë¤³¤È¤Ê¤¯¡¢¼«Æ°Åª¤Ë UI ¤Î¹¹¿·½èÍý¤ò¹Ô¤¦¤è¤¦¤Ë¤¹¤ë»ÅÁȤߤǤ¹¡£


£³¡¥UI ɽ¼¨¤Î¹¹¿·½èÍý¤ò UniRX ¤Îµ¡Ç½¤Ç¤¢¤ë ReactivePropery ¤òÍøÍѤ·¤¿½èÍý¤ËÊѹ¹¤¹¤ë

£±¡¥GameData ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë


¡¡¤³¤³¤Þ¤Ç¤ÎÀâÌÀ¤ò¤Õ¤Þ¤¨¤Æ¡¢GameData ¥¯¥é¥¹¤Ë¤¢¤ë totalRewardPoint ÊÑ¿ô¤ò¡¢ReactivePropery ¤Î¾ðÊó¤ËÊѹ¹¤·¤Þ¤¹¡£

¡¡UniRX ¤ò¥¹¥¯¥ê¥×¥È¤ÇÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢Â¾¤Î¥é¥¤¥Ö¥é¥ê¤ÈƱ¤¸¤è¤¦¤Ë using ¤ËÀë¸À¤òÄɲä·¤Þ¤¹¡£

¡¡totalRewardPoint ÊÑ¿ô¤ÎÂå¤ï¤ê¤Ë ReactivePropery ¤ÎÀë¸À¤òÄɲä·¤ÆÍøÍѤǤ­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
totalRewardPoint ÊÑ¿ô¤òÍøÍѤ·¤Æ¤¤¤ëÉôʬ¤¬£³²Õ½ê¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò ReactivePropery ¤ËÊѹ¹¤·¤Þ¤¹¡£

¡¡ReactivePropery ¤Ï¥¸¥§¥Í¥ê¥Ã¥¯·¿¤Ç¤¢¤ë¤¿¤á¡¢<T> ¤ÎÉôʬ¤Ë¤ÏǤ°Õ¤Î·¿¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£
º£²ó¤Ï totalRewardPoint ÊÑ¿ô¤ÎÂå¤ï¤ê¤È¤Ê¤ë¤¿¤áƱ¤¸ int ·¿¤Ç¤¹¤¬¡¢¼«ºî¤·¤¿¥¯¥é¥¹(Î㤨¤Ð¡¢EarnedReward ¥¯¥é¥¹)¤Ê¤É¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¡¡ReactivePropery ¤Ï¥×¥í¥Ñ¥Æ¥£¤Î°ì¼ï¤Ç¤¹¤Î¤Ç¡¢Value ¥×¥í¥Ñ¥Æ¥£¤òÍøÍѤ¹¤ë¤³¤È¤ÇÃͤò»²¾È¤·¤¿¤ê¡¢¹¹¿·¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡
¡¡¤½¤·¤Æ¡¢ReactivePropery ¤Ë¤Ï¡ÖÃͤ¬¹¹¿·¤µ¤ì¤ë¤ÈÄÌÃΤò¹Ô¤¦¡×¤È¤¤¤¦µ¡Ç½¤¬È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢ReactivePropery ¤ÎÃͤ¬ 0 => 10 ¤È¤¤¤¦¤è¤¦¤ËÊѲ½¤ò¤¹¤ë¤È¡¢ReactivePropery ¤«¤éÄÌÃΤò¼õ¤±¼è¤ë(´Æ»ë¤¹¤ë)½èÍý¤ò»Ü¤¹¤³¤È¤Ç
¤³¤Î½èÍý¤ËÉտ路¤Æ¡¢¼«Æ°Åª¤Ë¥¤¥Ù¥ó¥È½èÍý¤òȯÀ¸¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡º£²ó¤Ï¤³¤Î GameData ¥¯¥é¥¹¤ËÍÑ°Õ¤¹¤ë ReactivePropery ¤ÎÃͤò¡¢³°Éô¤Î¥¯¥é¥¹¤Ç¤¢¤ë UI ´ÉÍý¥¯¥é¥¹Â¦¤Ë¤Æ´Æ»ë¤·¤Æ¤â¤é¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡ReactivePropery ¦¤¬¡ÖÄÌÃΤò¹Ô¤¦Â¦ = ȯ¹Ô¡×¤È¤¤¤¤¡¢ReactivePropery ¤ÎÃͤδƻë¤ò¹Ô¤¦Â¦¤ò¡ÖÄÌÃΤò¼õ¤±¼è¤ë¦ = ¹ØÆɡפȤ¤¤¤¤Þ¤¹¡£


GameData.cs

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


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


£²¡¥UI ´ÉÍýÍѤΥ¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë¤«¡¢UIManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡¸½ºß¥Ý¥¤¥ó¥È¤Î²èÌ̹¹¿·¤ò´ÉÍý¤·¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
¤¢¤ë¤¤¤Ï¡¢¿·¤·¤¯ UIManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡Text ¥¯¥é¥¹¤ËË«¾Þ¥Ý¥¤¥ó¥È¤Îɽ¼¨¤ò¹Ô¤¦½èÍý¤Ë¤Ä¤¤¤Æ¡¢GameData ¥¹¥¯¥ê¥×¥È¤ËÄɲä·¤¿ ReactivePropery ¤ÎÃͤ¬ÊѲ½¤¹¤ë¤¿¤Ó¤Ë
¼«Æ°Åª¤Ë²èÌ̤Îɽ¼¨¤ò¹Ô¤¦¤è¤¦¤Ë ReactivePropery ¤ò´Æ»ë¤¹¤ë½èÍý¤òÄɲä·¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢UIManager ¥¯¥é¥¹¤Ï´Æ»ë¤ò¤¹¤ë¦¤Ç¤¢¤ê¡¢ÄÌÃΤò¡Ö¹ØÆɡפ¹¤ë¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡´Æ»ë(¹ØÆÉ)¤Î½èÍý¤Ï¡¢°ìÅټ곤­¤¹¤ì¤Ð¡¢¤¢¤È¤Ï½èÍý¤ò¼Â¹Ô¤·¤Ê¤¯¤Æ¤â¡¢ReactivePropery ¤ÎÃͤ¬ÊѲ½¤·¤¿¥¿¥¤¥ß¥ó¥°¤Ë¹ç¤ï¤»¤Æ¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢Start ¥á¥½¥Ã¥É¤Ë¤Æ£±²ó¤À¤±½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë½èÍý¤ÎÆâÍƤϡ¢Subscribe ¥á¥½¥Ã¥É¤Î°ú¿ôÆâ¤Ë»ØÄê¤ò¹Ô¤¤¤Þ¤¹¡£¤³¤Î°ú¿ô¤Ë¤Ï¥é¥à¥À¼°¤Ç½èÍý¤òÅÐÏ¿¤·¤Þ¤¹¡£
º£²ó¤Ï¡¢Text ¥¯¥é¥¹¤Î text ¥×¥í¥Ñ¥Æ¥£¤ÎÃͤò ReactivePropery ¤ÎÃͤ˹¹¿·¤¹¤ë½èÍý¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢²èÌ̤Ëɽ¼¨¤µ¤ì¤ë¥Ý¥¤¥ó¥È¤ÎÃͤò¹¹¿·¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤Î°ú¿ô¤Ë¤Ï¥á¥½¥Ã¥É¤âÅÐÏ¿¤Ç¤­¤Þ¤¹¤·¡¢¤³¤Î¤è¤¦¤Ë½èÍý¤òÅÐÏ¿¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£


UIManager .cs

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


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


£³¡¥¡ãReactivePropery<T> ¡ä


¡¡ReactivePropery¡Ê¥ê¥¢¥¯¥Æ¥£¥Ö¥×¥í¥Ñ¥Æ¥£¡Ë¤Ï¡¢UniRX ¤Î»ý¤Äµ¡Ç½¤Î£±¤Ä¤Ç¤¹¡£
ÍøÍѤ¹¤ë¤Ë¤Ï using UniRx; ¤ÎÀë¸À¤¬É¬Íפˤʤê¤Þ¤¹¡£

  using UniRx;

  public ReactiveProperty<int> PointReactiveProperty = new ReactiveProperty<int>(0);



¡¡ReactivePropery ¤Ï¥¸¥§¥Í¥ê¥Ã¥¯·¿¤Ç¤¢¤ë¤¿¤á¡¢<T> ¤ÎÉôʬ¤Ë¤ÏǤ°Õ¤Î·¿¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£
º£²ó¤Ï totalRewardPoint ÊÑ¿ô¤ÎÂå¤ï¤ê¤È¤Ê¤ë¤¿¤áƱ¤¸ int ·¿¤Ç¤¹¤¬¡¢¼«ºî¤·¤¿¥¯¥é¥¹(Î㤨¤Ð¡¢EarnedReward ¥¯¥é¥¹)¤Ê¤É¤ò»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

¡¡ReactivePropery ¤Ï Value ¥×¥í¥Ñ¥Æ¥£¤ò»ý¤Ã¤Æ¤ª¤ê¡¢¤³¤ÎÃæ¤Ë ReactivePropery ¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢ Value ¥×¥í¥Ñ¥Æ¥£¤òÍøÍѤ¹¤ë¤³¤È¤ÇÃͤò»²¾È¤·¤¿¤ê¡¢ÂåÆþ½èÍý¤ò¤·¤Æ¹¹¿·¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡
¡¡º£²ó¤Ç¤¢¤ì¤Ð¡¢int ·¿¤ÎÀ°¿ô¤Î¾ðÊ󡢤¹¤Ê¤ï¤Á¡¢totalRewardPoint ÊÑ¿ô¤ÎÂå¤ï¤ê¤È¤Ê¤ëÃͤ¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ëÉôʬ¤¬ Value ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡ãValue ¥×¥í¥Ñ¥Æ¥£¡ä
  PointReactiveProperty.Value += amount;


¡¡
¡¡¤â¤Ã¤È¤âÂ礭¤ÊÆÃħ¤È¤·¤Æ¡¢ReactivePropery ¤Ë¤Ï¡ÖÃͤ¬¹¹¿·¤µ¤ì¤ë¤ÈÄÌÃΤò¹Ô¤¦¡×¤È¤¤¤¦µ¡Ç½¤¬È÷¤ï¤Ã¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢ReactivePropery ¤ÎÃͤ¬ 0 => 10 ¤È¤¤¤¦¤è¤¦¤ËÊѲ½¤ò¤¹¤ë¤È¡¢ReactivePropery ¤«¤éÄÌÃΤò¼õ¤±¼è¤ë(´Æ»ë¤¹¤ë)½èÍý¤ò»Ü¤¹¤³¤È¤Ç
¤³¤Î½èÍý¤ËÉտ路¤Æ¡¢¼«Æ°Åª¤Ë¥¤¥Ù¥ó¥È½èÍý¤òȯÀ¸¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡º£²ó¤Ï GameData ¥¯¥é¥¹¤ËÍÑ°Õ¤·¤¿ ReactivePropery ¤ÎÃͤò¡¢³°Éô¤Î¥¯¥é¥¹¤Ç¤¢¤ë UI ´ÉÍý¥¯¥é¥¹Â¦¤Ë¤Æ´Æ»ë¤·¤Æ¤â¤é¤¦¤è¤¦¤ËÀ߷פ·¤Æ¤¤¤Þ¤¹¡£

¡¡ReactivePropery ¦¤¬¡ÖÄÌÃΤò¹Ô¤¦Â¦ = ȯ¹Ô¡×¤È¤¤¤¤¡¢ReactivePropery ¤ÎÃͤδƻë¤ò¹Ô¤¦Â¦¤ò¡ÖÄÌÃΤò¼õ¤±¼è¤ë¦ = ¹ØÆɡפȤ¤¤¤¤Þ¤¹¡£

¡ãUIManager ¥¯¥é¥¹¤¬ ReactivePropery ¤ÎÄÌÃΤò¼õ¤±¼è¤ë(¹ØÆɤ¹¤ë)¦¡ä
¡¡// ReactivePropery ¤«¤éÄÌÃΤò¼õ¤±¼è¤ë(¹ØÆÉ)¦¤ÎÀßÄê¤ò¤¹¤ë¡£ReactivePropery ¤ÎÃͤ¬¹¹¿·¤µ¤ì¤ë¤È¡¢ÄÌÃΤ¬ÆϤ­¡¢¤³¤Î Subscribe ¥á¥½¥Ã¥É¤ÎÆâÍƤ¬¼Â¹Ô¤µ¤ì¤ë
  GameData.instance.PointReactiveProperty.Subscribe(x => txtPoint.text = GameData.instance.PointReactiveProperty.Value.ToString());

¡¡ReactivePropery ¤«¤é¤ÎÄÌÃΤò¼õ¤±¼è¤ë¤¿¤á¤Ë¤Ï¡¢ÄÌÃΤò¼õ¤±¼è¤ê¤¿¤¤ ReactivePropery ¤ËÂФ·¤Æ¡¢Subscribe ¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Þ¤¹¡£
Subscribe ¥á¥½¥Ã¥É¤Ï°ú¿ôÆâ¤Ë¡¢½èÍý¤Î¼ÂÁõ¡¢¤¢¤ë¤¤¤Ï¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·½èÍý¤ò¼ÂÁõ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢
¡ÖReactivePropery ¤ÎÃͤ¬¹¹¿·¤µ¤ì¤¿¤é¡¢Subscribe ¥á¥½¥Ã¥É¤Î°ú¿ô¤Ëµ­½Ò¤·¤Æ¤¢¤ë½èÍý¤ò¼«Æ°Åª¤ËËè²ó¼Â¹Ô¤¹¤ë¡×¤È¤¤¤¦½èÍý¤¬Æ°¤­¤Þ¤¹¡£

¡¡¤³¤Îµ¡Ç½¤Ë¤è¤Ã¤Æ¡¢¡Ö¤¢¤ë¾õÂ֤ˤʤ俤Ȥ­¤Ë¡¢»ØÄꤷ¤Æ¤¢¤ë½èÍý¤ò¼Â¹Ô¤¹¤ë¡×¤È¤¤¤¦¥¤¥Ù¥ó¥È½èÍý¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡Subscribe ¥á¥½¥Ã¥É¤Ï¥é¥à¥À¼°¤Ç½èÍý¤òµ­½Ò¤·¤Þ¤¹¡£°ú¿ô¤òÍøÍѤ·¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢(_ => ) ¤È¥¢¥ó¥À¡¼¥Ð¡¼¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£
º£²ó¤Î Subscribe ¥á¥½¥Ã¥É¤Î½èÍý¤Ï (x => txtPoint.text = GameData.instance.PointReactiveProperty.Value.ToString()) ¤Ç¤¹¤Î¤Ç¡¢
ReactivePropery ¤ÎÃÍ(¸½ºß¤Î³ÍÆÀ¥Ý¥¤¥ó¥È)¤¬Êѹ¹¤Ë¤Ê¤Ã¤¿¤é¡¢¤½¤ÎÅÔÅÙ¡¢txtPoint.text ¤Ë GameData.instance.PointReactiveProperty.Value.ToString() ¤Î¾ðÊó¤òÂåÆþ¤¹¤ë¤È¤¤¤¦½èÍý¤¬Æ°¤¤¤Æ¤¤¤Þ¤¹¡£

¡¡¤½¤Î¤¿¤áº£²ó¤Î¼ÂÁõ¤Ç¤Ï¡¢³ÍÆÀ¥Ý¥¤¥ó¥È¤ò¹¹¿·¤·¤¿¤¢¤È¤Ë¡¢²èÌ̤Îɽ¼¨¤ò¹¹¿·¤¹¤ë¤È¤¤¤¦½èÍý¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢
¤³¤Î ReactivePropery ¤Îµ¡Ç½¤Ë¤è¤Ã¤Æ¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸½èÍý¤ò¼«Æ°Åª¤ËÆ°ºî¤¹¤ë¤è¤¦¤Ëµ¡Ç½¤ò¤·¤Æ¤¤¤Þ¤¹¡£¤³¤³¤¬Â礭¤Ê°ã¤¤¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¼ÂÁõ¤·¤¿¥×¥í¥°¥é¥à¤òÆɤßľ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
²èÌ̤Îɽ¼¨¤ò¹¹¿·¤¹¤ë½èÍý¤Ï¡¢UIManager ¥¯¥é¥¹¤Î Start ¥á¥½¥Ã¥É¤Ç£±²ó¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤À¤±¤Ç¤¢¤ë¤³¤È¤¬Ê¬¤«¤ë¤È»×¤¤¤Þ¤¹¡£


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


¡¡º£²ó¹Ô¤Ã¤Æ¤¤¤ë¼ÂÁõ¤Ï¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ç¤¹¤Î¤Ç¡¢¥²¡¼¥à¤ÎµóÆ°¤¬ÊѤï¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£(ÊѤï¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤é¡¢¤½¤ì¤Ï¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ë¤Ê¤ê¤Þ¤»¤ó)
¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢¤¤¤Þ¤Þ¤ÇÆ°¤¤¤Æ¤¤¤¿¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢¥Ý¥¤¥ó¥È¤Î²Ã»»¤Ë±þ¤¸¤Æ²èÌ̤Îɽ¼¨¤â¹¹¿·¤µ¤ì¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£


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

¡¡¥²¡¼¥à²èÌ̾å¤Ï¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸µóÆ°¤Ç¤¢¤ë¤Î¤ËÂФ·¡¢¥×¥í¥°¥é¥à¤Î¼ÂÁõÆâÍƤ¬¤¤¤Þ¤Þ¤Ç¤È°ã¤¦¤³¤È¤ò°Õ¼±¤·¤Æ¡¢½èÍý¤ò³Îǧ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡Text ¥¯¥é¥¹¤ËÂФ·¤Æ¡¢¥Ý¥¤¥ó¥È¹¹¿·¤ÎÅÔÅÙ¡¢¹¹¿·¤ÎÌ¿Îá¤ò¼Â¹Ô¤·¤Æ¤¤¤¿½èÍý¤È°Û¤Ê¤ê
¤³¤Î¼ÂÁõ¤Ç¤Ï ReactivePropery ¤ÎÃͤι¹¿·¤Ë¹ç¤ï¤»¤Æ¡¢ReactivePropery ¤ò´Æ»ë¤·¤Æ¤¤¤ë UIManager ¥¯¥é¥¹¤Î Text ¥¯¥é¥¹¤¬°ì½ï¤Ë¹¹¿·¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ë¡ÖÃͤι¹¿·¤Ë¹ç¤ï¤»¤Æ¥¤¥Ù¥ó¥È½èÍý¤òȯÀ¸¤µ¤»¤ë¡×¤È¤¤¤¦¾ì¹ç¤Ë¡¢ReactivePropery ¤ÏÈó¾ï¤ËÊØÍø¤Êµ¡Ç½¤È¸À¤¨¤Þ¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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