¡¡¤³¤Î¥¡¼¥ï¡¼¥É·²¤Ï C# ¤Î Task ¥¯¥é¥¹¡¢¤ª¤è¤Ó UniTask ¥¯¥é¥¹¤Ëɳ¤Å¤¤¤¿¹½Ê¸¤Ç¤¹¡£
¤è¤Ã¤Æ Task ¥¯¥é¥¹¤« UniTask ¥¯¥é¥¹¤È°ì½ï¤ËÀë¸À¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡async(¥¨¥¤¥·¥ó¥¯) ¤Ï Asynchoronous(¥¨¥¤¥·¥ó¥¯¥í¥Ê¥¹) ¤È¤¤¤¦Ã±¸ì¤Îά¸ì¤Ç¡ÖÈóƱ´ü¡×¤È¤¤¤¦°ÕÌ£¤Ç¤¹¡£
¤³¤ì¤Ï await ¤òÍøÍѤ¹¤ë¥á¥½¥Ã¥É¤òµ½Ò¤¹¤ë¤¿¤á¤Ë¡¢¥á¥½¥Ã¥É¤ÎÀë¸À»þ¤Ë¤Ä¤±¤ëɬÍפ¬¤¢¤ë¥¡¼¥ï¡¼¥É¤Ç¤¹¡£
¤½¤ÎºÝ¡¢Ìá¤êÃÍ¤Ë¤Ï UniTask ¤òÍøÍѤ·¤Þ¤¹¡£
¡ãasync ¥¡¼¥ï¡¼¥É¡ä
private async UniTask Hoge() {
}
¡¡await(¥¢¥¦¥§¥¤¥È) ¥¡¼¥ï¡¼¥É¤Ï¡ÖÂÔ¤Á¼õ¤±¤ë¡×¤È¤¤¤¦°ÕÌ£¤Ç¤¹¡£
¤³¤Î¥¡¼¥ï¡¼¥É¤Ï¡¢ÈóƱ´ü½èÍý¤È¤·¤Æ¼Â¹Ô¤¹¤ë¥á¥½¥Ã¥É¤ÎÀèƬ¤Ëµ½Ò¤·¤Þ¤¹¡£
¡ãawait ¥¡¼¥ï¡¼¥É¡ä
private async UniTask Hoge() {
await HogeHoge();
}
¡¡¤³¤Î£²¤Ä¤Î¥¡¼¥ï¡¼¥É¤òÍøÍѤ·¡¢Ìá¤êÃͤη¿¤ò UniTask ¤Ë¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥³¥ë¡¼¥Á¥ó½èÍý¤ÈƱ¤¸¤è¤¦¤Ë
ÈóƱ´ü½èÍý¤ò¼Â¹Ô¤·¡¢¤½¤Î½èÍý¤Î²ò·è¤òÂÔ¤Á¼õ¤±¤ëµ¡Ç½(¥á¥¤¥ó¥¹¥ì¥Ã¥É¤Ë½èÍý¤¬Ìá¤Ã¤Æ¤¯¤ë¤Î¤òÂÔ¤Ä)¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤Þ¤¿¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Çµ½Ò¤¬²Äǽ¤Ç¤¢¤Ã¤¿ yield return null ¤ä WaitUntil ¤Ê¤É¤â½èÍý¤â UniTask ¤Ë¤Ï static ¥á¥½¥Ã¥É¤È¤·¤ÆÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢async / await ¥¡¼¥ï¡¼¥É¤ò»È¤¦¤³¤È¤Ç¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤òÃÖ¤´¹¤¨¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤Þ¤¿¥³¥ë¡¼¥Á¥ó¤Ç¤ÏľÀÜ»ØÄê¤Ç¤¤Ê¤«¤Ã¤¿Ìá¤êÃͤâ UniTask<T> ¤È¤·¤Æµ½Ò¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥¿¥×¥ë·¿¤òÍøÍѤ¹¤ë¤³¤È¤ÇÊ£¿ô¤ÎÌá¤êÃͤò»ý¤¿¤»¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£
¡¡¤Ê¤ª UniTask ¤Ë¤Ï void ¤ËÁêÅö¤¹¤ë UniTaskVoid ·¿¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Î·¿¤Ë¤¹¤ë¤³¤È¤Ç½èÍý¤òÂÔ¤Á¼õ¤±¤Ê¤¤(await ¤Ç¤¤Ê¤¤)¥á¥½¥Ã¥É¤È¤·¤Æµ¡Ç½¤µ¤»¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£
½èÍý¤Î´°Î»¤òÄÌÃΤ¹¤ëɬÍפ¬¤Ê¤¤¥á¥½¥Ã¥É¤ÇÍøÍѤ¹¤ë¤¿¤á¡¢¤³¤Îµ¡Ç½¤Ï UniTask ¤ò»È¤Ã¤¿ÈóƱ´ü½èÍý¤ÎºÇ¸å¤ËÍøÍѤµ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£(ÈóƱ´ü½èÍý¤òºÇ½é¤Ë½èÍý¤·»Ï¤á¤ë¾ì½ê¡¢¤È¤â¸À¤¨¤Þ¤¹)
¡ã»²¹Í¥µ¥¤¥È¡ä
MicroSoft
https://docs.microsoft.com/ja-jp/dotnet/csharp/pro...
Qiita @4_mio_11 ÍÍ
ÈóƱ´üÍý²ò¤Î¤¿¤á¤Ëasync/await¤ÈTask¤Î´ðÁäò³Ø¤ó¤ÀÏÃ
https://qiita.com/4_mio_11/items/f9b19c04509328b1e...