ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ08·î09Æü(¿å) 09:47:47ÍúÎò
¡¡Á°Ãʳ¬¤Î³Ø½¬¤È¤·¤Þ¤·¤Æ¡¢²¼µ¤Îµ»ö¤Î³Ø½¬¤ò¤ª´ê¤¤Ãפ·¤Þ¤¹¡£
¡¡¡¡¡¡=>¡¡ÈîÂç²½¤·¤¿¥¯¥é¥¹Æâ¤Î½èÍý¤ò¡¢Ìò³ä¤Ë±þ¤¸¤¿¥¯¥é¥¹¤òÊ£¿ôºîÀ®¤·¤Æʬ³ä¤¹¤ë¼ÂÁõÎã
¡¡¤Þ¤¿¤³¤Îµ»ö¤Ï¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤¬ÌÜŪ¤Ç¤¢¤ë¤¿¤á¡¢UniTask ¼«ÂΤξܺ٤ÊÀâÌÀ¤Ï´Þ¤Þ¤ì¤Æ¤¤¤Þ¤»¤ó¡£
»öÁ°¤ËÊ̤ε»ö¤ä¾¤Î¥µ¥¤¥È¤Îµ»ö¤ò»²¹Í¤·¤Æ»öÁ°³Ø½¬¤ò¤ª´ê¤¤Ãפ·¤Þ¤¹¡£
¡¡¥³¥ë¡¼¥Á¥ó¤Î¼Â¹ÔÌ¿Îá¤Ç¤¢¤ë StartCoroutine ¥á¥½¥Ã¥É¤Ï MonoBehaviour¤ò·Ñ¾µ¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Ç¤Î¤ßÍøÍѤǤ¤Þ¤¹¡£
¤½¤Î¤¿¤á¥³¥ë¡¼¥Á¥ó¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸Â¸´ü´Ö¤Ë°Í¸¤¹¤ëÈóƱ´ü½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
²¿¸Î¤Ê¤é¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Î¤¢¤ë¥¹¥¯¥ê¥×¥È¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¤½¤Î¥¢¥¿¥Ã¥Á¤·¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ÇË´þ¤µ¤ì¤¿¥¿¥¤¥ß¥ó¥°¤Ç¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Î½èÍý¤âÄä»ß¤·¤Þ¤¹¡£
¡¡
¡¡Unity ¤Ç¤Ï UniTask ¤Ë¤è¤ê¡¢async / await ¤Ë¤è¤ëÈóƱ´ü½èÍý¤¬¼ÂÁõ²Äǽ¤Ç¤¹¡£
¤³¤Á¤é¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸Â¸´ü´Ö¤Ë¤Ï°Í¸¤·¤Þ¤»¤ó¤¬¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ÇË´þ¤µ¤ì¤Æ¤â¼«Æ°Åª¤Ë½èÍý¤ÏÄä»ß¤·¤Þ¤»¤ó¡£
Àµ¤·¤¤½ñ¤Êý¤òÍý²ò¤·¤Æ¥í¥¸¥Ã¥¯¤òÁȤळ¤È¤¬½ÐÍè¤ì¤Ð¡¢¥³¥ë¡¼¥Á¥ó¤è¤ê¤â½ÀÆð¤Ê½èÍý¤¬µ½Ò¤Ç¤¤Þ¤¹¡£
¡¡¤É¤Á¤é¤Î½èÍý¤Î½ñ¤Êý¤â³Ð¤¨¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢¥½¡¼¥¹¥³¡¼¥É¤Îµ½Ò¤ÎÉý¤¬¹¤¬¤ê¤Þ¤¹¡£
º£²ó¤ÏÁ°²ó¤ÎÈîÂç²½¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Îʬ³ä¤ò¥Ù¡¼¥¹¤Ë¡¢¥³¥ë¡¼¥Á¥ó¤Î½èÍý¤ò UniTask ¤òÍøÍѤ·¤¿ÈóƱ´ü½èÍý¤ËÊѹ¹¤·¤Þ¤¹¡£
¡¡¤³¤ì¤âÁ°Ãʳ¬¤ÈƱ¤¸¹Í¤¨Êý¤Ç¤¹¤Î¤Ç¡¢¤³¤³¤Ç¤Ï³ä°¦¤·¤Þ¤¹¡£
¡¡³Ø½¬¤È¤·¤Æ¤Ï¡¢Ê¬³ä¤·¤¿³Æ¥¯¥é¥¹Æâ¤Ë¤¢¤ë¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤ò UniTask ¤òÍøÍѤ·¤¿ async / await ¤Î½èÍý¤Ë¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¤³¤Î¥¯¥é¥¹¤Ë¤Ï¥³¥ë¡¼¥Á¥ó¤òÍøÍѤ·¤¿¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢
¿·¤·¤¤¥á¥½¥Ã¥É¤òºîÀ®¤·¤¿¾å¤Ç¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤Ã¤ÆÈóƱ´ü½èÍý¤òÃÖ¤´¹¤¨¤Þ¤¹¡£
¡¡async / await ¤Ë¤è¤ëÈóƱ´ü½èÍýÍѤΥ᥽¥Ã¥É¤Ï¡¢Ìá¤êÃͤò UniTask ·¿¤Ë¤·¤Þ¤¹¡£
¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤È°ã¤¤¡¢Ìá¤êÃͤˤÏǤ°Õ¤Î¾ðÊó¤ò»ý¤¿¤»¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£UniTask<int> ¤Î¤è¤¦¤Ë½ñ¤±¤Þ¤¹¡£
¡¡²Ã¤¨¤Æ¡¢¥á¥½¥Ã¥É¤ÎÄêµÁ¤Ë¤Ï async ¥¡¼¥ï¡¼¥É¤òÉÕÍ¿¤·¤Þ¤¹¡£
¥á¥½¥Ã¥É̾¤Ï¤ï¤«¤ê¤ä¤¹¤¤¤è¤¦¤Ë ¡Á Async ¤Ç½ª¤ï¤ë¤è¤¦¤Ë¤·¡¢ÈóƱ´üÍѤΥ᥽¥Ã¥É¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ë¤è¤¦¤Ë̿̾¤·¤Þ¤¹¡£
º£²ó¤Ç¤¢¤ì¤Ð PlayActionAsync ¤È¤·¤Æ¤¤¤Þ¤¹¡£
¡¡await ¥¡¼¥ï¡¼¥É¤òÀèƬ¤Ë¤Ä¤±¤ë¤³¤È¤Ç¡¢ÈóƱ´ü½èÍý¤ò¼Â¹Ô¤Ç¤¤Þ¤¹¡£
¤³¤ì¤Ï yield return ÉդΠStartCoroutine ¤ÈƱ¤¸Ìò³ä¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢ÈóƱ´ü½èÍý¤¬´°Î»¤¹¤ë¤Þ¤Ç¼¡¤Î½èÍý¤Ë¤Ï°Ü¹Ô¤·¤Þ¤»¤ó¡£
¡¡¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ë¤è¤ëÈóƱ´ü½èÍý¤Ï¼Â¹Ô¤·¤Æ¤¹¤°¤Ë¼¡¤Î½èÍý¤Ë°Ü¹Ô¤·¤Þ¤·¤¿¤¬¡¢
async / await ¤Ë¤è¤ëÈóƱ´ü½èÍý¤ÏÂÔµ¡¤¹¤ë¤³¤È¤¬Á°Äó¤Ë¤Ê¤Ã¤Æ¤¤¤ëÈóƱ´ü½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ÈóƱ´ü½èÍý°Ê³°¤Î¥á¥½¥Ã¥ÉÆâ¤Ç await ¤Î¤Ê¤¤ÈóƱ´ü½èÍý¤ò¼Â¹Ô¤¹¤ë¤È·Ù¹ð¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¤½¤Î¾ì¹ç¤Ë¤Ï¡¢Forget ¥á¥½¥Ã¥É¤òÄɲ乤뤳¤È¤Ç¡¢ÂÔµ¡¤Î¤Ê¤¤ÈóƱ´ü½èÍý(½¾Íè¤Î¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É)¤È¤·¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
Update ¥á¥½¥Ã¥ÉÆâ
if (Input.GetButtonDown("Action")) { // ¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤Ë¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ¥¢¥¯¥·¥ç¥ó¤Ç¤¤ë¤«È½Äê PrepareJedgeAction().Forget(); }
¡¡Forget ¥á¥½¥Ã¥É¤òÄɲ䷤Ƥ¤¤ë½èÍý¤ÏÂÔµ¡¤»¤º¤Ë¡¢¼¡¤Î½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯