ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2021ǯ11·î17Æü(¿å) 12:03:07ÍúÎò
¡¡
¡¡¤³¤³¤Ç¤Ï GameManager ¥¯¥é¥¹¤È¡¢CharaDetail ¥¯¥é¥¹¤Î½èÍý¤ò½çÈ֤˸«Ä¾¤·¤Æ¤¤¤¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
ȯŸ£´¡¡¡ÝUniRX (ReactivePropery)¤òÍøÍѤ·¤¿½èÍý¤Î¼ÂÁõ£¡Ý
£¶¡¥¥¯¥é¥¹´Ö¤Î°Í¸´Ø·¸¤Î¸«Ä¾¤·£¡¡¡¼GameManager ¥¯¥é¥¹¤È CharaDetail ¥¯¥é¥¹¡¼
¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
¡¡¡¦UniRX ¤Î´ðËÜÆ°ºî¢¡¡¡¼AddTo ¥á¥½¥Ã¥É¡¼
¡¡¤¤¤Þ¤Þ¤Ç¼ÂÁõ¤·¤Æ¤¤¿¼ê½ç¤ÈƱ¤¸¤Ç¤¹¡£
¡¡¶µºà¤Î½èÍý¤ò¸«¤ëÁ°¤Ë¡¢°Í¸´Ø·¸¤ò²ò¾Ã¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«¡¢
¼«Ê¬¤ÇÀ߷פò¹Í¤¨¤Æ¡¢ReactivePropery ¤òÍøÍѤ·¤¿½èÍý¤ÎÀ߷פËÊѹ¹¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡GameManager ¥¯¥é¥¹¤È¡¢¤½¤Î¾¤Î¥¯¥é¥¹¤È¤Î´Ö¤Î°Í¸´Ø·¸¤Ë¤Ä¤¤¤Æ¹Í¤¨¤Æ¡¢²ò¾Ã¤Ç¤¤ëÉôʬ¤Ë¤Ä¤¤¤Æ¤Ï°Í¸´Ø·¸¤ò²ò¾Ã¤·¤Æ¡¢¥¯¥é¥¹¤ÎÆÈΩÀ¤ò¹â¤á¤Þ¤¹¡£
¡¡¸½ºß¤Î GameManager ¥¯¥é¥¹¤È CharaDetail ¥¯¥é¥¹¤Î´Ø·¸¤ò¸«¤Æ¤¤¤¤Þ¤¹¡£
¡ã¥¯¥é¥¹´Ö¤Î°Í¸´Ø·¸¡ä
¡¡GameManager ¥¯¥é¥¹¡¡¢Î¡¡CharaDetail ¥¯¥é¥¹
¡¡GameManager ¥¯¥é¥¹¤Ï¡¢CharaDetail ¥¯¥é¥¹¤ò¥×¥ì¥Õ¥¡¥Ö¤Î¾ðÊó¤È¤·¤Æ´ÉÍý¤·¤Æ¤ª¤ê¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤¹¤ë½èÍý¤òôÅö¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤ÎºÝ¤Ë¡¢CharaDetail ¥¯¥é¥¹¤Î SetUpCharaDetail ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢GameManager ¥¯¥é¥¹¤Î¾ðÊó¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¤³¤ì¤Ï¡¢¤ª¸ß¤¤¤¬¤ª¸ß¤¤¤òÃΤäƤª¤ê¡¢¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¡¢°Í¸¤·¤Æ¤¤¤ë´Ø·¸¤Ç¤¢¤ë¤È¸À¤¨¤Þ¤¹¡£
¤³¤Î´Ø·¸¤ò¡¢²¼µ¤Î¤è¤¦¤Ë GameManager ¥¯¥é¥¹¤Î¤ß¤¬ÃΤäƤ¤¤ë¡¦¤Ä¤Ê¤¬¤Ã¤Æ¤¤¤ë¾õÂ֤˽¤Àµ¤·¤Þ¤¹¡£
¡ã¤ä¤ê¤¿¤¤¤³¤È¡¡¤½¤Î¡¡ä
¡¡GameManager ¥¯¥é¥¹¡¡¢ª¡¡CharaDetail ¥¯¥é¥¹(GameManager ¥¯¥é¥¹¤À¤±¤¬ CharaDetail ¥¯¥é¥¹¤òÃΤäƤ¤¤ë)
¡¡º£²ó¤Î¼ÂÁõ¤âÁ°²ó¤ÈƱ¤¸¤è¤¦¤Ë¹Í¤¨¤Þ¤¹¡£
¤¤¤Þ¤Þ¤Ç¤Ï°Í¸¤·¤¢¤Ã¤Æ¤¤¤¿¥¯¥é¥¹¤òÊÒÊý¤À¤±¤¬Áê¼ê¤Î¥¯¥é¥¹¤Î¤³¤È¤òÃΤäƤ¤¤ë¾õÂ֤˺î¤êÊѤ¨¤Þ¤¹¡£
¡¡¤Þ¤º¤Ï CharaDetail ¥¯¥é¥¹¤ÎÆÈΩÀ¤ò¹â¤á¤Æ¡¢GameManager ¥¯¥é¥¹¤Î¤³¤È¤ò¡ÖÃΤé¤Ê¤¤¡×¾õÂ֤ˤ·¤Þ¤¹¡£
¤½¤ÎÂå¤ï¤ê¤Ë¡¢ReactivePropery ¤ò½àÈ÷¤·¤Æ¡¢TapPointDetail ¥¯¥é¥¹¤ÇȯÀ¸¤·¤¿¾õÂÖ¤ò³°Éô¤Î¥¯¥é¥¹¤ËÄÌÃΤǤ¤ë¾õÂÖ¤ËÊѤ¨¤Þ¤¹¡£
¡¡¤½¤·¤Æ¡¢GameManager ¥¯¥é¥¹¤Ç¤Ï CharaDetail ¥¯¥é¥¹¤Î¾ðÊó¤ò ReactivePropery ¤òÄ̤¸¤ÆÃΤë(´Æ»ë)¤¹¤ë¤è¤¦¤ËÊѹ¹¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡GameManager ¥¯¥é¥¹¤Î¾ðÊó¤òÍøÍѤ·¤Ê¤¤¾õÂ֤Ǻ£¤Þ¤Ç¤ÈƱ¤¸µóÆ°¤Ë¤Ê¤ë¤è¤¦¤Ë¡¢¥¯¥é¥¹¤ÎÆâÍƤòÀßÄꤷ¤Ê¤ª¤·¤Æ¡¢¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¿·¤·¤¯ ReactivePropery ¤òÄɲä·¡¢¤³¤Î¾ðÊó¤ò GameManager ¥¯¥é¥¹Â¦¤Ç´Æ»ë¤·¤Æ¡¢
Ãͤι¹¿·¤Ë¹ç¤ï¤»¤Æ GameManager ¥¯¥é¥¹Â¦¤Ç¼«Æ°Åª¤Ë½èÍý¤ò¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡¸½ºß¤Ï SetUpCharaDetail ¥á¥½¥Ã¥É¤Î°ú¿ô¤Ç GameManager ¥¯¥é¥¹¤È TapPointDetail ¥¯¥é¥¹¤Î¾ðÊó¤ò¼õ¤±¼è¤Ã¤Æ¡¢
GameManager ¥¯¥é¥¹¤È CharaDetail ¥¯¥é¥¹¤È¤Ï¤ª¸ß¤¤¤ËÃΤäƤ¤¤ë¾õÂ֤ˤʤäƤ¤¤Þ¤·¤¿¤¬¡¢¤½¤ì¤ò²ò¾Ã¤·¤Þ¤¹¡£
TapPointDetail ¥¯¥é¥¹¤Î¾ðÊó¤â¤½¤Î GameManager ¥¯¥é¥¹¤Ø¤ÎÌ¿Îá¤ÎºÝ¤ËÍøÍѤ·¤Æ¤¤¤¿¾ðÊó¤Ç¤¢¤ë¤¿¤á¡¢¥¯¥é¥¹¤È¼Â¹ÔÌ¿Îá¤Î¤É¤Á¤é¤âÉÔÍפˤʤê¤Þ¤¹¡£
¡¡¤Þ¤¿¿·¤·¤¯¥³¡¼¥ë¥Ð¥Ã¥¯¤Î¥á¥½¥Ã¥É¤Ç¤¢¤ë OnDestroy ¥á¥½¥Ã¥É¤òÄɲ䷤Ƥ¤¤Þ¤¹¡£
¤³¤Î¥á¥½¥Ã¥É¤Ï MonoBehaviour ¥¯¥é¥¹¤¬»ý¤Ã¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Î£±¤Ä¤Ç¡¢¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ç˲õ¤µ¤ì¤¿ºÝ¤Ë¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
MonoBehaviour.OnDestroy
https://docs.unity3d.com/ja/current/ScriptReferenc...
¡¡¤³¤Î¥á¥½¥Ã¥É¤Î¼Â¹Ô¥¿¥¤¥ß¥ó¥°¤Ç¼«Æ°Åª¤Ë ReactivePropery ¤ò Dispose ¤¹¤ëµ¡Ç½¤¬ UniRX ¤Ë¤Ï¤¢¤ë¤¿¤á¡¢
¤½¤Îµ¡Ç½¤ò GameManager ¥¯¥é¥¹Â¦¤Ç¼Â¹Ô¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë OnDestroy ¥á¥½¥Ã¥É¤òÄɲ䷤Ƥ¤¤Þ¤¹¡£
CharaDetail.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡CharaDetail ¥¯¥é¥¹¤ËÄɲä·¤¿ ReactivePropery ¤Î´Æ»ë½èÍý¤òÄɲä·¤Þ¤¹¡£
GameManager ¥¯¥é¥¹Â¦¤Ç´Æ»ë¤ò¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢CharaDetail ¥¯¥é¥¹Â¦¤Ï GameManager ¥¯¥é¥¹¤òÃΤëɬÍפ¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤³¤Ç¤â´Æ»ë½èÍý¤Ï°ìÅټ¹Ԥ¹¤ì¤Ð¡¢¤¢¤È¤Ï¤º¤Ã¤È´Æ»ë¾õÂ֤ˤʤê¤Þ¤¹¡£
¤½¤Î¸å¡¢CharaDetail ¥¯¥é¥¹¤Î¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ÇË´þ¤µ¤ì¤ë¥¿¥¤¥ß¥ó¥°¤Ç
CharaDetail¥¯¥é¥¹¤ËÄɲä·¤¿ OnDestroy ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ¡¢ReactivePropery ¤âƱ¥¿¥¤¥ß¥ó¥°¤ÇÇË´þ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡´Æ»ë¾õÂÖ¤Ïȯ¹Ô¸µ¤Ç¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤â¼«Æ°Åª¤Ë¤Ï½ªÎ»¤·¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢¼Â¹Ô¤Ç¤¤Ê¤¤½èÍý¤ò¤º¤Ã¤È´Æ»ë¤¹¤ë¾õÂ֤ȤʤäƻĤäƤ·¤Þ¤¤¤Þ¤¹¤Î¤Ç¡¢É¬¤ºÅ¬Àڤʥ¿¥¤¥ß¥ó¥°¤Ç ReactivePropery ¤ò Dispose ¤·¤ÆÇË´þ¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
GameManager.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡¤¢¤È¤«¤é Dispose ¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤ËÅÐÏ¿¤·¤Æ¤ª¤¯¤³¤È¤¬¤Ç¤¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
AddTo ¥á¥½¥Ã¥É¤ÎÂоÝÀè¤È¤·¤ÆÅÐÏ¿¤Ç¤¤ë¤Î¤Ï°Ê²¼¤Î£²¤Ä¤Î¥¿¥¤¥ß¥ó¥°¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡£±¡¥GameObject ¤Î OnDestroy ¥á¥½¥Ã¥É¤Î¼Â¹Ô¥¿¥¤¥ß¥ó¥° ¡¡£²¡¥CompositeDisposable ¤Î Dispose ¤Î¼Â¹Ô¥¿¥¤¥ß¥ó¥°
¡¡º£²ó¤Ï CharaDetail ¥¯¥é¥¹¤Ë OnDestroy ¥á¥½¥Ã¥É¤òÄɲä·¡¢¤³¤Î¥á¥½¥Ã¥É¤Î¼Â¹Ô¥¿¥¤¥ß¥ó¥°¤Ç
ReactivePropery ¤Î Dispose ¤ò¹Ô¤¦¤è¤¦¤ËÀ߷פ·¤Æ¤¤¤Þ¤¹¡£
// CharaDetail ¥¯¥é¥¹¤ÎReactivePropery ¤ò´Æ»ë¤¹¤ë chara.ButtonReactiveProperty.Where(x => x == true).Subscribe(_ => ResultJobs(tapPointDetail)).AddTo(chara.gameObject);
¡¡Å¬Àڤʥ¿¥¤¥ß¥ó¥°¤Ç Dispose ¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤â½èÍý¼«ÂΤÏÆ°¤Â³¤±¤Æ¤·¤Þ¤¦¤¿¤á¡¢Ãí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡º£²ó¤Î¼ÂÁõ¤â¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¥²¡¼¥à¾å¤Î½èÍý¤Ïº£¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤ËÀµ¾ï¤ËÆ°ºî¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯