ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2021ǯ11·î28Æü(Æü) 17:20:40ÍúÎò
¡¡
¡¡¤³¤³¤Ç¤Ï GameManager ¥¯¥é¥¹¤È¡¢TapPointDetail ¥¯¥é¥¹¤Î½èÍý¤ò½çÈ֤˸«Ä¾¤·¤Æ¤¤¤¤Þ¤¹¡£
¡ã¼ÂÁõư²è¡ä
ư²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê²¼¤ÎÆâÍÆ¤Ç½çÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
ȯŸ£³¡¡¡ÝUniRX (ReactivePropery)¤òÍøÍѤ·¤¿½èÍý¤Î¼ÂÁõ¢¡Ý
£µ¡¥¥¯¥é¥¹´Ö¤Î°Í¸´Ø·¸¤Î¸«Ä¾¤·¢¡¡¡¼GameManager ¥¯¥é¥¹¤È TapPointDetail ¥¯¥é¥¹¡¼
¡¡¿·¤·¤¤³Ø½¬ÆâÍÆ¤Ï¡¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
¡¡¡¦UniRX ¤Î¥ª¥Ú¥ì¡¼¥¿¡¼µ¡Ç½¤Î¼ÂÁõÎ㢡¡¡¼DistinctUntilChanged ¥á¥½¥Ã¥É¡¼
¡¡GameManager ¥¯¥é¥¹¤È¡¢¤½¤Î¾¤Î¥¯¥é¥¹¤È¤Î´Ö¤Î°Í¸´Ø·¸¤Ë¤Ä¤¤¤Æ¹Í¤¨¤Æ¡¢²ò¾Ã¤Ç¤¤ëÉôʬ¤Ë¤Ä¤¤¤Æ¤Ï°Í¸´Ø·¸¤ò²ò¾Ã¤·¤Æ¡¢¥¯¥é¥¹¤ÎÆÈΩÀ¤ò¹â¤á¤Þ¤¹¡£
¡¡¸½ºß¤Î GameManager ¥¯¥é¥¹¤È TapPointDetail ¥¯¥é¥¹¤Î´Ø·¸¤ò¸«¤Æ¤¤¤¤Þ¤¹¡£
¡ã¥¯¥é¥¹´Ö¤Î°Í¸´Ø·¸¡ä
¡¡GameManager ¥¯¥é¥¹¡¡¢Î¡¡TapPointDetail ¥¯¥é¥¹
¡¡GameManager ¥¯¥é¥¹¤Ï¡¢TapPointDetail ¥¯¥é¥¹¤ò List ¤È¤·¤Æ´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤ÎºÝ¤Ë¡¢TapPointDetail ¥¯¥é¥¹¤Î SetUpTapPointDetail ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢GameManager ¥¯¥é¥¹¤Î¾ðÊó¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¤³¤ì¤Ï¡¢¤ª¸ß¤¤¤¬¤ª¸ß¤¤¤òÃΤäƤª¤ê¡¢¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¡¢°Í¸¤·¤Æ¤¤¤ë´Ø·¸¤Ç¤¢¤ë¤È¸À¤¨¤Þ¤¹¡£
¤³¤Î´Ø·¸¤ò¡¢²¼µ¤Î¤è¤¦¤Ë GameManager ¥¯¥é¥¹¤Î¤ß¤¬ÃΤäƤ¤¤ë¡¦¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¾õÂ֤˽¤Àµ¤·¤Þ¤¹¡£
¡ã¤ä¤ê¤¿¤¤¤³¤È¡¡¤½¤Î¡¡ä
¡¡GameManager ¥¯¥é¥¹¡¡¢ª¡¡TapPointDetail ¥¯¥é¥¹(GameManager ¥¯¥é¥¹¤À¤±¤¬ TapPointDetail ¥¯¥é¥¹¤òÃΤäƤ¤¤ë)
¡¡º£²ó¤Î¼ÂÁõ¤âÁ°²ó¤ÈƱ¤¸¤è¤¦¤Ë¹Í¤¨¤Þ¤¹¡£
¤¤¤Þ¤Þ¤Ç¤Ï°Í¸¤·¤¢¤Ã¤Æ¤¤¤¿¥¯¥é¥¹¤òÊÒÊý¤À¤±¤¬Áê¼ê¤Î¥¯¥é¥¹¤Î¤³¤È¤òÃΤäƤ¤¤ë¾õÂ֤˺î¤êÊѤ¨¤Þ¤¹¡£
¡¡¤Þ¤º¤Ï TapPointDetail ¥¯¥é¥¹¤ÎÆÈΩÀ¤ò¹â¤á¤Æ¡¢GameManager ¥¯¥é¥¹¤Î¤³¤È¤ò¡ÖÃΤé¤Ê¤¤¡×¾õÂ֤ˤ·¤Þ¤¹¡£
¤½¤ÎÂå¤ï¤ê¤Ë¡¢ReactivePropery ¤ò½àÈ÷¤·¤Æ¡¢TapPointDetail ¥¯¥é¥¹¤ÇȯÀ¸¤·¤¿¾õÂÖ¤ò³°Éô¤Î¥¯¥é¥¹¤ËÄÌÃΤǤ¤ë¾õÂÖ¤ËÊѤ¨¤Þ¤¹¡£
¡¡¤½¤·¤Æ¡¢GameManager ¥¯¥é¥¹¤Ç¤Ï TapPointDetail ¥¯¥é¥¹¤Î¾ðÊó¤ò ReactivePropery ¤òÄ̤¸¤ÆÃΤë(´Æ»ë)¤¹¤ë¤è¤¦¤ËÊѹ¹¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡ReactivePropery ¤Ï¡¢ÃͤËÊѲ½¤¬¤¢¤Ã¤¿¾ì¹ç¤Ë¡¢¹ØÆÉ¼Ô(GameManager ¥¯¥é¥¹)¤ËÂФ·¤Æ¡¢ÄÌÃΤòȯ¹Ô¤·¤Þ¤¹¡£
¤½¤Î¥¿¥¤¥ß¥ó¥°¤Ç¡¢GameManager ¥¯¥é¥¹¤Ïͽ¤áÍѰդ·¤Æ¤ª¤¤¤¿¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ëÀ߷פǤ¹¡£
¡¡ReactivePropery ¤Ë¤Ï¥ª¥Ú¥ì¡¼¥¿¡¼µ¡Ç½¤¬¤¢¤ë¤¿¤á¡¢¼Â¹Ô¤Ë¤¢¤¿¤ê¡¢¾ò·ï¼°¤òÉÕÍ¿¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£
Ä̾ï¤ÏÃͤ¬ÊѤï¤Ã¤¿Ãʳ¬¤Ç¤¹¤°¤Ë Subscribe ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¤¬¡¢
Where ¥á¥½¥Ã¥É¤ò½èÍý¤È½èÍý¤Î´Ö¤ËÍѰդ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¡ÖÊѲ½¤·¤¿Ãͤ¬¡¢¾ò·ï¼°¤òËþ¤¿¤¹¾ì¹ç¡×¤È¤¤¤¦À©¸Â¤òÉÕ¤±¤Æ¼Â¹Ô¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡using ¤ËÀë¸À¤òÄɲ䷤ơ¢ReactivePropery ¤òÍøÍѤǤ¤ë¤è¤¦¤ËÄɲä·¤Þ¤¹¡£
¡¡ReactivePropery ¤Ï£²¤ÄÍѰդ·¤Þ¤¹¡££±¤Ä¤Ï isJob(IsJob ¥×¥í¥Ñ¥Æ¥£) ¤ÎÂå¤ï¤ê¤Ë¤Ê¤ë¤â¤Î¡¢
¤â¤¦£±¤Ä¤Ï TapPointDetail ¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¿¥Ã¥×¤·¤¿ºÝ¤ËȽÄê¤ò¹Ô¤¦¤¿¤á¤Î¤â¤Î¤Ç¤¹¡£
¡¡GameManager ¥¯¥é¥¹¤È¤Î°Í¸´Ø·¸¤ò²ò¾Ã¤¹¤ë¤¿¤á¡¢SetUpTapPointDetail ¥á¥½¥Ã¥É¤ÎÂè1°ú¿ô¤Ç¼õ¤±¼è¤Ã¤Æ¤¤¤¿ GameManager ¥¯¥é¥¹¤Î¾ðÊó¤òºï½ü¤·¡¢¼õ¤±¼è¤é¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤ì¤Ç TapPointDetail ¥¯¥é¥¹¤Ï GameManager ¥¯¥é¥¹¤ò¡ÖÃΤé¤Ê¤¤¡×¾õÂ֤ˤʤê¤Þ¤¹¡£
¡¡OnClickTapPoint¥á¥½¥Ã¥É¤ò½¤Àµ¤·¡¢ReactivePropery ¤ÎÃͤËÂФ·¤Æ¡¢ÁªÂò¤·¤¿¥Ü¥¿¥ó¤Î¼ïÎà¤Ë±þ¤¸¤Æ¡¢true ¤« false ¤«¤ÇÂåÆþ¤ò¹Ô¤¤¤Þ¤¹¡£
¤³¤ÎÃͤÎÊѹ¹¤¬È¯À¸¤¹¤ë¥¿¥¤¥ß¥ó¥°¤Ç¡¢GameManager ¥¯¥é¥¹Â¦¤ËÄÌÃΤ¬ÆÏ¤¡¢GameManager ¥¯¥é¥¹¤¬¼«Æ°Åª¤ËÍѰդ·¤Æ¤¢¤Ã¤¿¥¤¥Ù¥ó¥È(¥á¥½¥Ã¥É)¤ò¼Â¹Ô¤·¤Þ¤¹¤Î¤Ç
¥¿¥Ã¥×¤Ë¹ç¤ï¤»¤Æ¹Ô¤Àè³Îǧ¥Ý¥Ã¥×¥¢¥Ã¥×¤¬³«¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡IsJob ¥×¥í¥Ñ¥Æ¥£¤òÍøÍѤ·¤Æ¤¤¤¿¾ì½ê¤ò ReactivePropery ¤ÎƱ¤¸Ìò³ä¤ò»ý¤ÄÊÑ¿ô¤ËÊѹ¹¤·¤Þ¤¹¡£
¤³¤ÎÃͤâ GameManager ¥¯¥é¥¹Â¦¤Ç´Æ»ë¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤ª¤¤¤Æ¡¢¡Ö¤ª»È¤¤¤Î¾õ¶·¡×¤ò¼«Æ°Åª¤Ë GameManager ¥¯¥é¥¹Â¦¤ËÄÌÃΤ·¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¤ª»È¤¤¤Î´°Î»¤Ë¹ç¤ï¤»¤Æ GameManager ¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë½èÍý¤¬ÉÔÍפˤʤê¤Þ¤¹¡£
¡¡¤³¤Î½¤Àµ¤ò¹Ô¤¦¤³¤È¤Ë¤è¤ê¡¢¤³¤ì¤é¤Î½èÍý¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤ËÍѰդ·¤Æ¤¤¤¿Ê£¿ô¤ÎÊÑ¿ô¤âÉÔÍפˤʤê¤Þ¤¹¤Î¤Ç¡¢£±¤Ä¤º¤Ä½èÍý¤ÎÆâÍÆ¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
TapPointDetail.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡TapPointDetail ¥¯¥é¥¹¤ËÄɲä·¤¿ ReactivePropery ¤Î´Æ»ë½èÍý¤òÄɲä·¤Þ¤¹¡£
¡¡¤³¤³¤Ç¤â´Æ»ë½èÍý¤Ï°ìÅټ¹Ԥ¹¤ì¤Ð¡¢¤¢¤È¤Ï¤º¤Ã¤È´Æ»ë¾õÂ֤ˤʤê¤Þ¤¹¡£
¤½¤Î¤¿¤áÂçÀڤʤΤϡ¢¤É¤Î¥¿¥¤¥ß¥ó¥°¤Ç´Æ»ë½èÍý¤ò³«»Ï¤¹¤ë¤«¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡´Ö°ã¤¨¤Æ£²²ó°Ê¾å´Æ»ë½èÍý¤¬Ä̤ë¤è¤¦¤Ë¤·¤Æ¤·¤Þ¤Ã¤¿¤ê¡¢Dispose ¤¬²¿²ó¤âɬÍפˤʤë¤è¤¦¤Ê½èÍý¤Ë¤Ï¤Ê¤é¤Ê¤¤¤è¤¦¤ÊÀ߷פò¹Í¤¨¤Æ¤¤¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡½èÍý¤ò´Ö°ã¤¨¤ë¤È¡¢¤ª»È¤¤´°Î»¤Î½èÍý¤¬£²²ó°Ê¾åÁö¤Ã¤Æ¤·¤Þ¤Ã¤¿¤ê¤¹¤ë¤Î¤Ç¡¢ReactivePropery ¤Ë¤è¤ëÈ󯱴ü½èÍý¤Î¼ÂÁõ¤Ë¤ÏÃí°Õ¤¬É¬ÍפǤ¹¡£
¡¡¥á¥½¥Ã¥É¤ÎÌò³ä¤òÌÀ³Î¤Ë¤·¤ÆÊ¬¶È¤¹¤ë¤¿¤á¡¢TapPointSetUp ¥á¥½¥Ã¥É¤ÎÆâÍÆ¤Ë¤Ë¤Ä¤¤¤Æ¡¢TapPointDetail ¥¯¥é¥¹¤ÎÀßÄê¤ò¹Ô¤¦½èÍý¤È¡¢¤ª»È¤¤¤Î¾õ¶·¤òȽÄꤹ¤ë½èÍý¤òʬΥ¤·¤ÆÊ̥᥽¥Ã¥É²½¤·¤Þ¤¹¡£
¿·¤·¤¯ SetUpJobDatasToTapPointDetails ¥á¥½¥Ã¥É¤òºîÀ®¤·¤Æ¡¢¤³¤ÎÃæ¤Ç TapPointDetail ¥¯¥é¥¹¤ÎÀßÄê¤È ReactivePropery ¤Î´Æ»ë¤ò³«»Ï¤·¤Þ¤¹¡£
TapPointSetUp ¥á¥½¥Ã¥É¤Ï¥á¥½¥Ã¥É̾¤ò JudgeCompleteJobs ¤ËÊѹ¹¤·¡¢TapPointDetail ¥¯¥é¥¹¤ÎÀßÄê¤òºï½ü¤·¡¢¤ª»È¤¤¤Î¾õ¶·¤òȽÄꤹ¤ë½èÍý¤Î¤ß¤Î¥á¥½¥Ã¥É¤ËÊѹ¹¤·¤Þ¤¹¡£
GameManager.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡¿·¤·¤¯¼ÂÁõ¤·¤¿¥ª¥Ú¥ì¡¼¥¿¡¼¤Ë¤Ä¤¤¤ÆÀâÌÀ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡DistinctUntilChanged ¥á¥½¥Ã¥É¤Ï¡¢ÆþÎϤµ¤ì¤¿¥á¥Ã¥»¡¼¥¸¤¬Ä¾Á°¤Î¤â¤Î¤È¤ª¤Ê¤¸ÃͤǤ¢¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢
¥á¥Ã¥»¡¼¥¸¤ÎÄÌÃΤò¹Ô¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¥ª¥Ú¥ì¡¼¥¿¡¼¤Ç¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢ÃͤÎÊÑÆ°¤¬µ¯¤³¤Ã¤¿¾ì¹ç¤Ë¤À¤±¡¢ÄÌÃΤò¹Ô¤¦¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£
¡¡°ú¿ô¤Ë¤Ä¤¤¤Æ¤Ï²¿¤â»ØÄꤷ¤Ê¤¤¾ì¹ç¤È¡¢°ú¿ô¤ò»ØÄꤹ¤ëÊýË¡¤È¤¬¤¢¤ê¤Þ¤¹¡£
¡¡
// TapPointDetail ¥¯¥é¥¹¤Î ButtonReactivePropery ¤ò´Æ»ë¤·¤Æ¡¢¤ª»È¤¤¤Î³«»Ï¤¹¤ë¥¿¥¤¥ß¥ó¥°¤ò´Æ»ë¤¹¤ë¡£Ãͤ¬ true ¤Ë¤Ê¤Ã¤¿¾ì¹ç¤À¤±¡¢Subscribe ¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤ò¼Â¹Ô¤¹¤ë tapPointDetailsList[i].ButtonReactiveProperty.DistinctUntilChanged().Where(x => x == true).Subscribe(_ => GenerateJobsConfirmPopUp(tapPointDetail));
¡¡º£²ó¤Î¥±¡¼¥¹¤Ç¤Ï°ú¿ô¤ò»ØÄꤷ¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢¥á¥Ã¥»¡¼¥¸¤¬Ä¾Á°¤ÎÃÍ¤ÈÆ±¤¸¤Ç¤¢¤ë¤«¤É¤¦¤«¤Ï·¿¤Ë¤è¤ë¥Ç¥Õ¥©¥ë¥È¤ÎÊýË¡¤Ç¹Ô¤¤¤Þ¤¹¡£
ButtonReactiveProperty ¤¬ bool ·¿¤Ç¤¢¤ë¤¿¤á¡¢È½Äê¤ò¹Ô¤¦Ä¾Á°¤ÎÃÍ¤Ï bool ·¿¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡false => true ¤È ButtonReactiveProperty ¤ÎÃͤ¬ÊѲ½¤·¤¿¾ì¹ç¤Ë¤Ï¡¢DistinctUntilChanged ¥á¥½¥Ã¥É¤ÎÉôʬ¤ÏÄ̲ᤷ¡¢Where ¥ª¥Ú¥ì¡¼¥¿¡¼¤Î½èÍý¤Ë°Ü¤ê¤Þ¤¹¡£
¤Ç¤¹¤¬¡¢falsa => false ¤È ButtonReactiveProperty ¤ÎÃͤ¬ÊѲ½¤·¤¿¾ì¹ç¤Ë¤Ï¡¢DistinctUntilChanged ¥á¥½¥Ã¥É¤ÎÉôʬ¤ÏÄ̲á¤Ç¤¤Ê¤¤¤¿¤á¡¢¤½¤³¤Ç½èÍý¤¬½ªÎ»¤È¤Ê¤ê¤Þ¤¹¡£
¡¡ReactivePropery ¤Î½é´üÃÍ¤È Where ¥ª¥Ú¥ì¡¼¥¿¡¼¤ÎȽÄêÃͤ¬Æ±¤¸¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï¡¢¤³¤¦¤¤¤Ã¤¿¥ª¥Ú¥ì¡¼¥¿¡¼¤ò¶´¤à¤³¤È¤ÇÀ©¸æ¤ò¹Ô¤¦¤È¤¤¤¤¤Ç¤·¤ç¤¦¡£
¡¡º£²ó¤Î¼ÂÁõ¤â¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¥²¡¼¥à¾å¤Î½èÍý¤Ïº£¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤ËÀµ¾ï¤Ëưºî¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡ã¼ÂÁõư²è¡ä
ư²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯